Network models of complex systems

ABSTRACT

This invention describes computer based virtual models of complex systems, together with integrated systems and methods providing a development and execution framework for visual modeling and dynamic simulation of said models. The virtual models can be used for analysis, monitoring, or control of the operation of the complex systems modeled, as well as for information retrieval. More particularly, the virtual models in the present implementation relate to biological complex systems. In the current implementation the virtual models comprise building blocks representing physical, chemical, or biological processes, the pools of entities that participate in those processes, a hierarchy of compartments representing time-intervals or the spatial and/or functional structure of the complex system in which said entities are located and said processes take place, and the description of the composition of those entities. The building blocks encapsulate in different layers the information, data, and mathematical models that characterize and define each virtual model, and a plurality of methods is associated with their components. The models are built by linking instances of the building blocks in a predefined way, which, when integrated by the methods provided in this invention, result in multidimensional networks of pathways. A number of functions and graphical interfaces can be selected for said instances of building blocks, to extract in various forms the information contained in said models. Those functions include: a) on-the-fly creation of displays of interactive multidimensional networks of pathways, according to user selections; b) dynamic quantitative simulations of selected networks; and c) complex predefined queries based on the relative position of pools of entities in the pathways, the role that the pools play in different processes, the location in selected compartments, and/or the structural components of the entities of those pools. The system integrates inferential control with quantitative and scaled simulation methods, and provides a variety of alternatives to deal with complex dynamic systems and with incomplete and constantly evolving information and data.

PARENT CASES

Priority Claimed: This is a divisional application of pending U.S. Ser.No. 08/860,975, filed on Dec. 22, 1997, which is a national stage filingunder 35 CFR §371 of International Application No. PCT/US96/00883, filedon Jan. 17, 1996, which was published in English under PCT Article 21(2)as WO 96/22575, and which claims the benefit as a continuation-in-partof the combined U.S. applications Ser. Nos. 08/373,688 and 08/373,992,both filed Jan. 17, 1995. U.S. Ser. No. 08/373,688, now abandoned, wascontinued as Ser. No. 08/889,624, filed Jul. 8, 1997, and issued as U.S.Pat. No. 5,930,154 on Jul. 27, 1999. U.S. Ser. No. 08/373,992 issued asU.S. Pat. No. 5,980,096, on Nov. 9, 1999. Related patent EP 0821817,entitled “Control Systems Based on Simulated Virtual Models”, wasgranted on Jun. 23, 1999. The specifications, drawings and appendixes ofeach of the above-referenced patent applications are incorporated hereinby reference.

COMPACT DISC APPENDIX

The Tables 1-233 referenced in the specification are pseudo-codelistings provided in the Compact Disc Appendix, which comprise one filewith 213 pages.

1. Technical Field

The present invention in its broadest form relates to computer-basedsystems, methods and visual interfaces for providing an integrateddevelopment and deployment framework for visual modeling and dynamicsimulation of Virtual Models of complex systems, which can be furtherintegrated with monitoring and control devices to control the operationof the complex systems modeled and can be used for informationretrieval. More in particular, the complex systems that are the focus ofthe exemplary embodiments of this invention are living organisms orsubsystems or populations thereof, comprising any combination ofbiological and regulatory networks of genetic, biochemical and/orsignal-transduction pathways, at the molecular, cellular, physiologicalor population levels.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

2. Background Art

Knowledge-Based and Model-Based System for Monitoring and ControlProcess industries, including the pharmaceutical, biotechnology,chemical, food, environmental and others may save millions of dollars byusing artificial intelligence for process optimization to controlcomplex productions facilities. Using large-scale cultivation ofmicroorganisms or mammalian cells are extreme cases in terms ofcomplexity, when considering then as the individual manufacturing plantsinvolved in complex chemical synthesis. Current systems monitor verygeneral types of phenomena, such as gas pressure, pH, and in someoccasions, the concentration of some product that correlates with cellgrowth or production, but those parameters are usually poor indicatorsof how much of the desired product is produced. Other methods fordesigning monitoring and control systems for laboratory and industrialapplications have been described, such as the one described in thepatent application published as EP 0 367 544 A2 (Int. Dev. Res. Center)9 May 1990, which uses a graphical interface to graphically model theset of instruments and controllers of such monitoring and controlsystems and a natural language to allow the integration of the knowledgeof experts into the automated control facilities. Most monitoringsystems are concerned with the overall processes that occur within thephysical constraints of given reactions tanks, but do not model the manycompartmentalized subsystems contained in each of those tanks withbiological systems, to more finely tune the productivity of thosesubsystems. Complex mixtures of chemical reactions can be finelycontrolled externally by modifying the types and amounts of inputsadded, if one could predict what will happen by adding those inputs,which requires a good knowledge and a model of such system of reactions.This is particularly the case with biological cellular systems that havevery sophisticated methods to transduce the signals provided by ligandsin their external environment to the interior of the cell, resulting inthe execution of specific functions. Such detailed and accessiblemechanistic models of those pathways of reactions are not currently usedfor monitoring and control systems, but would be highly desirable.

Several knowledge-based systems for monitoring and control functionshave been used to include the knowledge of experts into the automatedcontrol of production facilities. A knowledge-based system interpretsdata using diverse forms of knowledge added to the system by a humandomain expert including: a) shallow knowledge or heuristics, such ashuman experience and interpretations or rules-of thumb; and b) deepknowledge about the system behavior and interactions. The systems thatmainly based in the first type of knowledge are in general referred toas knowledge-based expert systems, and the logic is represented in theform of production rules. In the more advanced real-time expert systems,inferencing techniques are usually data-driven using forward chaining,but can also employ backward chaining for goal-driven tasks and forgathering data. The inference engine searches for and executes relevantrules, which are separate from the inference engine and therefore, therepresentation is intrinsically declarative.

Object-oriented expert systems allow a powerful knowledge representationof physical entities and conceptual entities. In those systems, data andbehavior may be unified in the class hierarchy. Each class has atemplate that defines each of the attributes characteristic of thatclass and distinguish it from another types of objects. Manipulation andretrieval of the values of the data structures may be performed throughmethods attached to an object's class. Model-based systems can bederived from empirical models based on regression of data or fromfirst-principle relationships between the variables. When sufficientinformation to model a process—or part of it—is available, a moreprecise and compact system can be built.

There is a number of commercially available shells and toolkits thatfacilitate the development and deployment of domain-specificknowledge-based applications. Of those, real-time expert-system shellsoffer capabilities for reasoning on the behavior of data over time. Eachof the real-time object-oriented shells from various vendors offers itsset of advantages, and each follows a different approach, such ascompiled versus interpreted, and offers a different level of graphicsophistication. The specific shell currently selected for theimplementation of this invention is Gensym Corporation's G2 Version 3.0system, and in part Version 4.0, which is designed for complex and largeon-line applications where large number of variables can be monitoredconcurrently. It is able to reason about time, to execute bothtime-triggered and event-triggered actions and invocations, to combineheuristic and procedural reasoning, dynamic simulation, user interface,database interface capabilities, and other facilities that allow theknowledge engineer to concentrate on the representation andincorporation of domain-specific knowledge to create domain-specificapplications. G2 provides a built-in inference engine, a simulator,prebuilt libraries of functions and actions, developer anduser-interfaces, and the management of their seamless interrelations. Abuilt-in inspect facility permits users to search for, locate, and editvarious types of knowledge. Among G2's Inference Engine capabilitiesare: a) data structures are tagged with time-stamp and validityintervals that are considered in all inferences and calculations, takingcare of truth maintenance; and b) intrinsic to G2's tasks are managed bythe real-time scheduler. Task prioritization, asynchronous concurrentoperations, and real-time task scheduling are therefore automaticallyprovided by this shell. G2 also provides a graphic user interfacebuilder, which may be used to create graphic user interfaces that arelanguage independent and allow to display information using colors,pictures and animation. Dynamic meters, graphs, and charts can bedefined for interactive follow-up of the simulation. It also hasdebugger, inspect and describe facilities. The knowledge-bases can besaved as separated modules as ASCII files. The graphic views can beshared with networked remote CPUs or terminals equipped with X Windowsserver software.

Computer-Aided Physiological and Molecular Modeling and ArtificialIntelligence in Molecular Biology

Most computer-aided physiological and molecular modeling approaches haveresulted in computer models of physiological function that are numericalmathematical models that relate the physiological variables usingempirically determined parameters. Those models, which can become quitecomplex, aim at modeling the overall system.

Both molecular biology and medicine have been fields of previousactivity in the application of artificial intelligence (AI). Inmolecular biology, although there were some early systems such as Molgenand Dendral, the activity has intensified recently as a consequence ofthe explosion in new technologies and the derived data, mostly relatedwith the Human Genome project and the handling of large amounts ofsequence data generated, relating to both DNA and proteins. There hasalso been an increased interest in computer methodologies in 3Dstructural models of molecular interactions. For a current state of theart, see the topics covered in symposia such as the recent SecondInternational Conference on Intelligent Systems for Molecular Biology,1994, Stanford University, CA. (its Proceedings are here included byreference). Here, only two projects will be mentioned that have somecommon objectives with the system that is the object of this invention.Discussions over other previous approaches are also included in thosereferences.

The Molgen group at Stanford University has studied scientific theoryformation in the domain of molecular biology, as reported by Karp, P. D.and Friedland, P. (included here by reference). This project relates tothe system of this invention in that both “are concerned withbiochemical systems containing populations of interacting molecules . .. in which the form of knowledge available . . . varies widely inprecision from quantitative to qualitative”, as those authors write. ThePh.D. dissertation of P. D. Karp (included here by reference) “developeda qualitative biochemistry for representing theories of molecularbiology”, as he summarizes in an abstract in AI Magazine, Winter 1990,pp 9-10. He developed three representation models to deal withbiochemical pathways, each having different capabilities and usingdifferent reasoning approaches. Model 1 uses IntelliCorp's KEEframes todescribe biological objects and KEE rules to describe chemical reactionsbetween the objects, which he recognizes to have serious limitationsbecause is not able to represent much of the knowledge available tobiologists. The objective of Model 2 is to predict reaction rates in agiven reaction network, incorporating a combination of quantitative andqualitative reasoning about state-variables and their interdependencies.The drawbacks are that this model is not able to incorporate adescription of the biological objects that participate in the reactions,and it does not have temporal reasoning capabilities, representing justa static description of the state variables and their relationships. Thethird model, called GENSIM and used for both prediction and hypothesisformation, is an extension of Model 1 and is composed of threeknowledge-bases or taxonomical hierarchies of classes of a) biologicalobjects that participate in a gene-regulation system, b) descriptions ofthe biological reactions that can occur between those objects, and c)experiments with instances of those classes of objects. The GENSIMprogram predicts experimental outcomes by determining which reactionsoccur between the objects in one experiment, that create new objectsthat cause new reactions. Characteristics of the GENSIM program that maybe relevant, although different, for the system of this invention are:a) chemical objects are homogeneous populations of molecules, objectscan be decomposed into their component parts, and identical objectssynthesized during a simulation are merged; b) chemical processesrepresent reactions between those populations as probabilistic eventswith two subpopulations, one that participate in the reaction and onethat does not. Those processes can create objects and manipulate theirproperties, but cannot reason about quantitative state variables such asquantities. In his words, “processes . . . specify actions that will betaken if certain conditions hold”, and in that sense are likeproduction-rules; c) restrictions are specified in the form ofpreconditions for chemical reactions to happen; and d) temporalreasoning is not available, resulting again in static representationsand simulating only behavior in very short time intervals.

The system of this invention integrates a variety of forms of knowledgerepresentation, some of them totally novel, while some of these formsmay have been treated by other authors similarly in some aspects.However, upon integration into a totally new approach, that treatmentbecomes a part of a novel representation and innovative system.Regarding the semi-quantitative simulation component this invention, L.E. Widman (1991) describes a semi-quantitative simulation of dynamicsystems in a different domain, with the assumption that “ . . .questions can be answered in terms of relative quantities rather thanabsolute quantities . . . model parameters that are not specifiedexplicitly are given the implicit, default values of ‘normal’ (unity) .. . ”. As it will become clear from the detail descriptions in thefollowing sections, the innovative tools and methods used in the presentimplementation a requite different. For example, while he assumes that“. . . the default, or implicit, value of ‘normal’ maps onto unity forparameters and onto zero for variables . . . ” the assumption in theprebuilt modular components in the current implementation differs inthat the default value of ‘normal’ may map onto values other than unityand zero, with those values being defined based on expert knowledge.

DISCLOSURE OF INVENTION

This invention describes an integrated computer-based system, methodsand visual interfaces for providing a development and deploymentframework for visual modeling and dynamic simulation of Virtual Modelsof complex systems, which can be further integrated with monitoring andcontrol devices to monitor and control the operation of the complexsystems modeled, based on the real-time simulation of those VirtualModels. The system of this invention can be used by scientists to buildthe Virtual Models, which in turn are to be used by scientists orprocess engineers to design, monitor and control a variety of processingunits. The Virtual Models can also be used for information retrieval, byusing the set of visual interfaces provided to perform a variety oftasks. The available information and data about those complex models isstored into modular, modifiable, expandable and reusable knowledgestructures, with several layers of encapsulation that allow to hide ordisplay the details at the desired level of complexity. Moreparticularly, the Virtual Models in the present invention describevisual models of biochemical complex systems, comprising sets of iconsrepresenting processes and their participants linked intomultidimensional pathways, further organized in a hierarchy of iconsrepresenting discrete time and space compartments, wherein suchcompartments may contain other compartments, and wherein those modularicons encapsulate in different layers all the information, data, andmathematical models that characterize and define each Virtual Model.

Some process industries use large-scale cultivation of microorganisms ormammalian cells, which are extreme cases in terms of complexity whenconsidering those cells as the individual manufacturing plants involvedin complex chemical synthesis. Microorganisms are the preferable systemsfor producing natural substances that have a multitude of uses, such asdrugs, foods, additives, biodetergents, biopolymers, and other new andraw materials. Mammalian cells are the preferable systems for producingpotent active substances for therapeutic and diagnostic uses. Theultimate level of complexity is using a whole animal as the live factoryfor continuous production for important secreted proteins. However, thecurrent systems only monitor very general types of phenomena, such asgas pressure, pH, and in some occasions, the concentration of someproduct that correlates with cell growth or production. For example, forcontrolling the production of a particular secreted protein that isproduced in very low amounts in relation to other proteins, the totalprotein amount of protein is measured, which is a very poor indicator ofhow much of the desired protein is produced. Complex mixtures ofchemical reactions could be finely controlled externally by modifyingthe types and amounts of inputs added, if one could predict what willhappen by adding those inputs, which requires a good knowledge and amodel of such system of reactions. This is particularly the case withbiological cellular systems that have very sophisticated methods totransduce the signals provided by ligands in their external environmentto the interior of the cell, resulting in the execution of specificfunctions. Such detailed and accessible mechanistic models of thosepathways of reactions are not currently used for monitoring and controlsystems, but would be highly desirable. This invention provides thesystem and methods that allows scientists to visually build detailedmechanistic models of the complex systems involved, and to furtherdevelop and use inference methods to integrate the simulation of thoseVirtual Models with inputs from monitoring devices to allow for theintelligent control of the operation of the complex system.

The accuracy and validity of knowledge-based systems correlates not onlywith the quality of the knowledge available to the developers but alsowith their ability to understand, interpret and represent thatknowledge. Because of the complex interrelationships driving thebiochemical processes within and between cells, it is necessary toprovide the many options for knowledge representation required by thosesystems. This invention presents a hybrid dynamic expert system thatcombines: a) the inheritance and encapsulation features characteristicof an object-oriented modeling approach, b) the procedural andrule-based inference capability of an expert system, and c) amodel-based simulation capability. It is an objective of this inventionto provide a framework that: a) allows domain-experts to directly entertheir knowledge to create visual models, and to modify them as neededbased on additional experimentation, without the need of knowledgeengineers as intermediaries, and b) provides a knowledge-base having awell defined structure for representing knowledge about entities,populations of entities, processes, pathways and interacting networks ofpathways, providing a visual interface and associated methods capable ofdealing with incomplete and constantly evolving information and data.The data structures and domain-specific knowledge-base are independentof application-specific use, allowing the application-specificknowledge-bases to expand without affecting the basic operation of thesystem. Specific applications can be quickly built by using the prebuiltbuilding blocks and the paradigm of “Clone, Link, Configure, andInitialize”. The structure of the domain-specific knowledge-base servesalso as the infrastructure provided to store additional informationabout new objects and models. The innovations of this invention includebut are not limited to the specific design, generation, integration, anduse of the libraries of building blocks, access panels, and theirassociated methods, that allow for representation, interpretation,modeling and simulation of different types of entities and their states,their relations and interactions, the pools of each of those entities indifferent compartments, the processes in which those pools of entitiesparticipate, and their discrete compartmentalization in time and space,as well as the concepts that make the simulation of this very complexsystems possible. A large Virtual Model can be built as a set ofmodules, focusing each on different subsystems. Each of the modules canbe run on top of the repository module that contain the classdefinitions and associated methods, and they can be dependent orindependent of each other, or they can be maintained in separate CPUsand seamless integrated by the Shell's supervisor.

Such libraries provide the prebuilt building blocks necessary forvisually representing the vast breath of knowledge required for buildingVirtual Models of complex systems in general, and of biological systemsin particular. The building blocks are classified in palettes that canbe selected through system menus. The descriptive information, data, andthe mathematical models are all encapsulated within the modularcomponents, in the form of attributes or in the form of component icons,with a plurality of methods associated with each of the icons. Thevisual models are built by interconnecting components of each reservoiricon to components of the one or several process icons in which theirentities participate as inputs or outputs, or by interconnectingcomponents of each process icon to components of the one or severalreservoir icons that provide inputs or receive outputs to that processicon, resulting in complex networks of multidimensional pathways ofalternating layers of reservoir icons and process icons, which may belocated in the same on in different compartments. The time compartmenticons, the reservoir icons, and the process icons or their componentscomprise sets of quantitative variables and parameters, and a set ofassociated methods that permit real-time simulations of the modelscreated with those modular components. The system of this inventioncombines a number of programming paradigms, integrating the visualinterface to define and constrained objects represented by icons, withprocedural and inferential control and quantitative andsemi-quantitative simulation methods, providing a variety ofalternatives to deal with complex dynamic systems.

Of importance in simulating the behavior of complex systems is the needto model the different quantities and states at which the entities canbe found in particular locations at different points in time, and alsoto model the events that cause the transitions from one state toanother, or the translocation from one location to another, or theprogress to the next phase in the time sequence. Teachings of thisinvention comprise: the representation of those states, transitions, andlocations; the methods to implement their graphic modeling; and themethods to dynamically simulate the dynamics of the pools of entities ineach state, location, or phase. In the particular domain implemented toillustrate this invention, there are several major types of states andtransitions to be considered, depending of whether the entity to beconsidered is a biological system, organ, cell, cellular compartment,molecule or any other of their components. We are providing here withjust a few examples considered in the currently preferred embodiment ofthis invention.

The architecture of the system of this invention allows variousbioProcesses to simultaneously compete for the contents of a bioPoolwhile also allows one bioPool to participate in various bioProcesses indifferent capacities, with different units within a bioPool behaving indifferent ways, as determined by the class of bioReactant to which theyare distantly connected via the bioPosts. With this implementation, allbioEngines that input units into a given bioPool and all the bioEnginesthat get input units from that bioPool are integrated. At the same time,all bioPools that input units into a given bioEngine and all thebioPools that get input units from that bioEngine are also linked. Theresult is a very complex multidimensional network of compositebioObjects, which provides the matrix for further reasoning andsimulation by the program. For example, the formulas that provide thevalues for the encapsulated sets of variables and parameters refer tolinked bioObjects, both graphically or distantly, providing thecapability of concurrently and dynamically compute as a large number ofprocessors arranged both in parallel and in series within that matrix.

The modeled system's behavior is defined by mathematical components,represented by a set of model differential and algebraic equations thatprovide the values of the system's variables and describe theirbehavior, together with the set of associated parameters that controlthe behavior of the variables and the system as a whole. The system'svariables and parameters are embedded and distributed throughout thesystem of connected structures, encapsulated within the subcomponentsthat define the system's architecture. The model can then be viewed as aset of embedded block diagram representations of the underlyingequations that can be used for dynamic numerical simulation andprediction of the effects of perturbations on the system, and to askwhat-if type questions.

The compartmentalized bioModels, and the methods attached to them,encode knowledge that enables the program to reason about thecontainment of different parts of the model in several compartments,while the architecture of the network of linked bioObjects of diversetypes is transparently maintained, regardless of the transfer of thebioObject icons to different locations. They also comprise quantitativevariables and parameters, some relating to quantities and ratestranslocation, distributed either within the corresponding reservoirsand process or relating to time intervals that may be associated withthe time compartments, all of which have associated simulation formulasto compute their values. In addition, the modeler can define expertrules to monitor the values of any of those variables while thesimulation is running, and to either set other values or control thecourse of the simulation in a variety of ways. The expert rules can alsoreason about time or about events resulting from the simulation, andInference using those types of knowledge may direct further actions tobe executed by the system.

The visual interface further provides quick access to several automatedmethods for compiling, retrieving, and displaying the modular componentsof the visual models as well as the information and data they contain.The system integrates inferential control with quantitative andsemi-quantitative simulation methods, and provides a variety ofalternatives to deal with complex dynamic systems and with incompleteand constantly evolving information and data. A number of functions andvisual interfaces can be selected from the menus associated with each ofthose icons or their components, to extract in various forms theinformation contained in the models build with those building blocks,such as:

a) methods to create and display of interactive networks of pathways, byprogrammatically integrating the components of the Virtual Model intomultidimensional networks of interacting pathways, including branchingand merging of pathways, cross-talk between pathways that shareelements, and feed-back and forward loops;

b) methods to perform complex predefined queries that combine criteriarelated to the structural composition of the bioEntities involved, theposition of bioPools downstream or upstream of the bioPool taken asreference, the role that those pools of entities play in processes, thelocation of those pools and processes in the discrete time and spacecompartments, or any combination of them.

c) methods to dynamically simulate their continuous interactions,modifications and translocations to other compartments, and thetime-dependency of such interactions, optionally using the encapsulatedabsolute-valued or scaled-valued parameters and variables.

The examples provided to document the current implementation of thisinvention focus on modeling biochemical regulatory processes that arerelevant for intracellular or intercellular signaling. This is howeverone of the many potential applications of the system of this invention,and it should not be construed to limit the applicability of this systemto the numerous other applications that involve complex systems in anyother domain, which can be developed by minor modifications or additionsof the system using the methodology here presented.

There are numerous other uses of the core system, methods and visualinterface of this invention, in addition to the monitoring and controlapplications described here. Of particular interest is the modeling andsimulation of disease specific conditions and the testing theeffects—both desired and unwanted side effects—of potential therapeuticagents. This invention also allows to analyze disturbances such aspotential environmental or biological inducers of disease in bothphysiological and pathophysiological models. The methods included inthis invention can in a similar way be used in a variety ofapplications, including but not limited to: simulation and prediction ofexperimental results; interactive drug design; study of drugside-effects and multiple drug interactions; simulation of interactivecauses in the induction and progression of disease, including bothbiological and environmental factors; diagnostics and clinical decisionsupport; therapy planning; theoretical research; and numerous otherapplications.

The foregoing and additional objectives, descriptions, features,operations and advantages of the present invention will be understoodfrom the following detailed description of the preferred embodiments incombination with the accompanying figures.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a high-level illustration of the various components integratedin the system of this invention to use the Virtual Models for controlfunctions.

FIG. 2 is a schematic representation of the organization in the systemof this invention of the components of the Virtual Models in the domainof cell biology.

FIG. 3 is a schematic representation of the organization ofdomain-specific processes in discrete space compartments and timecompartments.

FIG. 4 is a schematic representation of the handling of the dynamics ofthe progression of populations of cells through different states bymeans of the sets of pools of cells and processes characteristic of thisinvention.

FIG. 5 is a schematic representation of the multiple layers of linkedpools of entities and processes the result in the multidimensionalpathways characteristic of this invention.

FIG. 6 is a more detailed representation of how the various iconiccomponents encapsulated in the icons representing the pools of entitiesand processes are linked in the current implementation of thisinvention.

FIG. 7 is a detailed representation focusing on the iconic components ofa process and their relations to its sources of inputs and the targetsfor its outputs.

FIG. 8 is a detailed representation focusing on the iconic components ofa pool of entities and its inputs and outputs.

FIG. 9 shows domain menus that allow different types of access todifferent types of capabilities, for the purpose of modeling or usingthe virtual models, here focusing on the developer mode that allowsdeveloping additional tools.

FIG. 10 is the table of attributes of a complex variable structure thatallows the integration of measured values and the simulated values thatfacilitates the implementation of this invention.

FIG. 11 is a library of predefined classes of variables with associatedgeneric simulation formulas associated with each class available to themodeler virtual models for a specific domain.

FIG. 12 describes the sets of attributes of the components of areservoir, focusing on the variables and parameters of its model-blockcomponent.

FIG. 13 describes the sets of attributes of the components of a pool ofentities, focusing on its variables and parameters.

FIG. 14 describes the sets of attributes of the components of a process,focusing on the variables and parameters of its reactants.

FIG. 15 describes the sets of attributes of the components of a process,focusing on the variables and parameters of its engine and products.

FIG. 16 shows domain menus of the modeler mode that allow modelers toaccess the different palettes of prebuilt building blocks.

FIG. 17 shows examples of different palettes of prebuilt molecularcomponents.

FIG. 18 shows an example of a complex molecular structure built with theprebuilt molecular components.

FIG. 19 shows a palette with examples of prebuilt model-blocks.

FIG. 20 shows a palette with examples of prebuilt composite processes.

FIG. 21 shows a palette with examples of prebuilt reactants.

FIG. 22 describes the tools for interactively establishing links betweencomponents that result in multidimensional pathways.

FIG. 23 shows a palette with examples of prebuilt compositedomain-specific compartments.

FIGS. 24 a and 24 b describe a domain-specific compartmentalization ofthe components of a Virtual Model, in this case focusing on thesequential phases of a cell's cycle and on its subcellular compartments.

FIGS. 25 a and 25 b describe a domain-specific implementation ofcompartmentalized model of two cells interacting with each other andwith the external environment.

FIG. 26 describes a domain-specific characterization of thecompartmentalized model from an external point of view.

FIG. 27 describes a domain-specific implementation of an evolutionarytree representing the alternative successive states that acompartmentalized model may follow depending on the events that dependon their internal processes responding to the environment, from anexternal point of view.

FIG. 28 is a schematic representation of the combination of theinference and simulation capabilities used in this invention to simulateVirtual Models of complex systems.

FIG. 29 is a detailed representation of how in this invention pools ofcells interact with pools of molecules as reactants of processes, whichproducts are either molecules or cells in a different state.

FIG. 30 describes an example of the predefined Query Panels and theiruse.

FIGS. 31 a and 31 b describe how a user can request from any processwithin the Virtual Model the dynamic generation of the pathways of allthe processes that are either upstream or downstream from that process.

FIG. 32 describes an example of the predefined Navigation Panels thatthe user can request from any reservoir within the Virtual Model for thedynamic generation of constrained pathways of all the processes that areeither upstream or downstream from that reservoir, but which arecontained within a compartment selected by the user.

FIG. 33 describes an example of the predefined Simulation Panels thatthe user can request from any reservoir within the Virtual Model thedynamic generation of constrained pathways and for the control of thedynamic simulation of the kinetics of those pathways.

FIG. 34 describes how such simulation can be followed by plotting thetime-series of any of the quantitative values of any reservoir andprocess in the subsystem being simulated.

FIGS. 35 a and 35 b describe an example of the predefined ExperimentPanels that the user can select from the domain menus to request thedynamic generation of constrained pathways from multiple initial pointsand for the control of the dynamic simulation of the kinetics of thosepathways.

FIGS. 36 a and 36 b describe an example of such set of pathways frommultiple initial points.

BEST MODE FOR CARRYING OUT THE INVENTION

Notes: The body of the present application has sections that may containsome discussion of prior art teachings, intermingled with discussion ofinnovative and specific discussion of the best mode to use that priorart in this invention as presently contemplated. To describe thepreferred embodiments, it is necessary to include in the discussion thecapabilities offered by the shell used as development and deploymentframework for this invention (hereafter referred to as “the Shell”). Theapplicant specifically notes that statements made in any of thosesections do not necessarily delimit the various inventions claimed inthe present application, but rather are included to explain how theworkings of an existing set of tools is used to illustrate the preferredembodiments of the new tools and applications claimed in the Claimssection. The currently preferred embodiment of this invention, asdescribed in the present application, is based on the definitions of aparticular Shell: Gensym Corp.'s G2 Expert System. There are severalother attributes that relate to the Shell's built-in performance andformatting capabilities, which are not shown in those examples. Someinformation included within the body of this application was extractedfrom various sources describing the characteristics of G2, includinguser manuals (included here by reference), and some of this material issubject to copyright protection.

Monitoring and Controlling the Operation of a Reactor Using a SimulatedVirtual Model

The system object of this invention is a hybrid combination ofmodel-based methods describing the explicit mechanistic referencebehavior of the production system with the input from process sensorsthat monitor the state of the production system, triggering event-basedcontrol flow of operations characteristic of each system. The systemimplements rules that wait for events to happen. Such events may becomplex combinations of individual events, such as selected measuredvalues reaching certain predefined or simulated values, or be withincertain predefined ranges, including the implementation of fuzzy-logicwithin those rules. Such rules may fire other rules or invoke inferenceprocedures or cause certain control actions to take place. This systemcan detect the current status of the production system, and when theselected monitored variables reach certain values specified by thesimulated values of those variables, then certain control action takeplace. This system incorporates monitoring capabilities with theknowledge-based model to provide expert control of the operation of theproduction system or biofermentor. This control system providessimultaneous supervision of any number of operating variables (such asintermediary or end-products, which in the case of cellular systems canbe intracellular or secreted), and compares them with the simulatedvalues of those variables resulting from the encapsulated mathematicalmodels and, depending on the dynamically monitored behavior of theproduction system, the control system is able to compensate by feedingcomponents at different rates, feeding additional components, or stopfeeding some of the previous components.

Because of the user friendly and intuitive interface, the benchscientists can participate in the design of the production system byediting the knowledge-base and the visual models themselves,incorporating information and data obtained in their own experimentalresearch or that from other published resources. It allows the directincorporation of research into the scale-up operations. The scientistscan rapidly build models by selecting any desired building block fromthe many palettes provided, clone it and drop it on desired compartment,link it to other building blocks in the model, configure it by enteringvalues of desired attributes, and initialize it to establishrelationships with other building blocks in the model. The informationand data is entered into the system as attributes of objects, either asuser inputs, or directly from measuring devices using and interfacebetween said measuring devices and the computer system.

The system provides a graphical computation and control language, wherethe objects communicate through the links established between them. Someof those linkages are built in within the composite prebuilt buildingblocks, while the modeler establishes other links between appropriatecomponents from different building blocks. Other information, such asthe name, description, references, or the values of parameters specificfor each component are entered by the modeler. Variables in this systemare themselves objects, and maybe of two major classes: a) one-valuedvariables have only one value, which may be either provided during asimulation by a simulation formula or procedure, or inferred by anyother means, such as rules or general formulas defined by the modeler;and b) two-valued variables have two values: the simulated-value asbefore, and the measured-value is provided in real time through anexternal sensor mapped to said variable. The one-valued variables areused by default because of their smaller footprint, and their values areprovided by default by generic simulation formulas that are specific foreach class of variable. However, the modeler can replace them with theequivalent subclasses of two-valued variables for each instance of acomponent where the variable is mapped to an external sensor, and whenboth the measured valued and the simulated value of such variable isdesired. The modeler can also write specific formulas for any desiredinstance of a variable, which then overrides the default genericformulas. It is possible, through any of the inference mechanisms tocompare the measured value and the simulated-value, either the currentvalues or the values mapped at some time point in the past, since thesystem is able to keep a time-stamped history of both types of values,and take specified actions when the inference criteria are met, such as:causing a valve for a component feed to be more or less open or closed,or activating or deactivating whole branches of the model pathways beingsimulated. Such actions can alternatively be invoked as a result ofcomparing either the measured-value or the simulated-value to anypredefined constant value or range of values, or the value of any othervariable or parameter in the system. Or the action or set of actionscould result from inferences involving any number of comparisons betweenmeasured-values or simulated-values for any number of variables, or anynumber of parameters, or any predefined constant values.

As shown in FIG. 1, a system of this invention is composed of:

a) a reactor (102), which may comprise any combination of reactiontanks, fermentors, bioreactors, or other processing units;

b) one or more data acquisition devices (108), which may comprise anycombination of hardware and software devices, such as sets of sensors(106) that measure the amounts of selected chemicals in the reactor,signal transducers, filters, amplifiers, data acquisition boards,appropriate device drivers, or any other required devices;

c) one or more computer systems (112) comprising CPU, memory, storagedevice, display, user input device, linked (110) to the data acquisitiondevices (108);

d) one or more computer programs (114) and one or more computer VirtualModels (116) of pathways of chemical interactions and other processes inthe reactor (102), wherein the computer programs (114) and the VirtualModels (116) are used to quantitatively or semi-quantitatively simulatein real-time the Virtual Models (116), wherein the Virtual Modelsencapsulate one or more variables (118) that represent the quantities ofcertain monitored entities in the reactor(102) and one or more variables(128) that represent the quantities of certain entities or certainevents, which, when reaching certain values during the simulations ofthe Virtual Models (116) by the computer programs (114), trigger certaincontrol actions that affect the operation of the reactor (102), andwherein both the computer programs (114) and the Virtual Models (116)are loaded in the memory of one or more of the computer systems (112);

e) one or more monitoring interfaces (120) loaded in the memory of oneor more of the computer systems (112), which act as bridges (122) orsoftware interfaces between the data acquisition devices (108) and thecomputer programs (114) and allow passing of values (124, 126), such asthe values of the amounts of certain entities in the reactor (102), asmeasured (104) by the corresponding sensors (106), to the correspondingvariables (118) embedded in the Virtual Models (116) that represent saidamounts;

f) one or more controller devices (138), which regulate the operation ofthe reactor (102), such as controlling the flow of certain inputs (142)to the reactor (102), wherein the controller devices (138) are linked(136) to the computer systems (112);

g) one or more controller interfaces (130) loaded in the memory of oneor more of the computer systems (112), which act as bridges or softwareinterfaces between the computer programs (114) and the controllerdevices (138) and allow passing of control signals generated by thecomputer programs (114) as a result of the values of any combination ofany number of variables (128) embedded in the Virtual Models (116)reaching certain values.

Depending on the application requirements, the interfaces may providebridges to Supervisory Control and Data Acquisition (SCADA) systems,Distributed Control Systems (DCS) or Programmable Logic Controllers(PLCs), with the adequate protocol drivers, as well as to relationaldatabases, object-oriented databases, ASCII files, as well as to anumber of other connectivity applications, allowing the program to sendor receive values over said interface.

The knowledge-based Virtual Models include model-based reasoning thatmodels the dynamic behavior of processes on the reactor. Thismechanistic approach may involve any number of variables to bemonitored, including those measured and monitored in the reactor andthose simulated and monitored in the Virtual Models. The Virtual Modelsprovide a visual qualitative and quantitative description of processesthat happen inside of the reactor, as well as a description of theparticipants in those processes. The system of this invention separatesthe representation of the physical systems as Virtual Models from themonitoring and control aspects, allowing to integrate the same VirtualModels with different combinations of monitoring and control designs, tosolve different production needs.

FIG. 1 also shows the directions of flow of data and control in thesystem of this invention. The amounts of certain entities, which arespecific for each particular process design, are captured (104) by thecorresponding set of biosensors (106) and, through the data acquisitiondevices (108), those values are passed (124) to the monitoring interfacevariables, which in turn pass those values (126) to the correspondingvariables (118) in the Virtual Models (116) that represent those values.Those variables (118) are integrated with many other variables andparameters embedded in the Virtual Models (116) during the real-timesimulation of the Virtual Models (116), including other variables (128)embedded in the Virtual Models (116) that represent quantities, rates,or other events, and which are monitored by the programs (114) duringthe simulation. Whenever during the simulation the values of anycombination of any number of said monitored simulated variables (128),which are specific for each particular process design, reach certainvalues, then the programs (114) pass control signals (134), through theappropriate control auxiliary structures (132) in the controllerinterfaces (130), which are forwarded (140) to the controller devices(138), which in turn control the flow of inputs (142) and regulate (144)the operation of the bioreactor (102), which is being monitored (104) ina continuous manner.

Depending on the application requirements, the interfaces may providebridges to Supervisory Control and Data Acquisition (SCADA) systems(such as the HP's RTAP SCADA or others), Distributed Control Systems(DCS) (such as Honeywell TDC3000 DCS or others) or Programmable LogicControllers (PLCs) (such as Allen-Bradley's PLC3/PLC5 families, orothers), with the adequate protocol drivers, as well as to relationaldatabases, object-oriented databases, ASCII files, as well as to anumber of other connectivity applications, allowing the program to sendor receive values over said interface. The program (114) and theinterfaces (120, 130) are separate processes, which may be located onone or more host computers. In the later case, a communications link,such as a TCP/IP or DECnet protocols based link and port, is required.The program can also use various interfaces simultaneously, linked todifferent types of devices. The interface serves as a bridge betweenselected variables embedded in the objects of the Virtual Models andtheir corresponding mappings in one or more external systems. Functionsdefined in the interface can be invoked by remote procedure calls (RPCs)defined in the program, and viceversa.

The ideal system for the intelligent control of biotechnologicalprocesses must posses a large set of features reflecting the real-timeaspects of the control system, as well as the specific characteristicsof the biochemical processes involved. There are a variety of new sensortechnologies that may be used to provide the monitoring capabilitiesexternal to the Virtual Models. Furthemore, the system of this inventionallows to integrate a variety of real-time control options with theability to use mechanistic models to drive the automatic decision makingsupport for process control.

The knowledge-based Virtual Models include model-based reasoning thatmodels the dynamic behavior of processes on the reactor. Thismechanistic approach may involve any number of variables to bemonitored, including those measured and monitored in the reactor andthose simulated and monitored in the Virtual Models, which are both usedas inputs for the inference engine to be compared against each other oragainst other specified values, and which meeting the specifiedconditions trigger actions that result in control operation on thereactor. The Virtual Models provide a visual qualitative andquantitative description of processes that happen inside of the reactor,as well as a description of the participants in those processes. In somecases, the reactor may contain chemicals in solution or bound to otherstructures, such as carriers or membranes. In other cases, the reactormay contain less defined mixtures resulting from cell extracts. Yet inother cases, the reactor may contain cells of one or more types,interacting with each other and with their environment, the culturemedium, where each of such cells is an reactor itself that interact withother cell reactor. The system of this invention provides capabilitiesto produce more or less detailed Virtual Models of any of those types ofreactors, or Virtual Models of subsystems within such reactors.

The program provides a domain-specific framework for continuous anddiscrete process modeling and simulation, which combines a hierarchicalobject-oriented representation to provide facilities for hierarchicalsystems modeling to handle multi-dimensional information, model-basedand knowledge-based reasoning, temporal inferencing, and dynamicreal-time monitoring and control. Furthermore, the system of thisinvention separates the representation of the physical systems asVirtual Models from the monitoring and control aspects, allowing tointegrate the same Virtual Models with different combinations ofmonitoring and control designs, to solve different production needs.

The present invention also refers to a domain-specific,application-independent, knowledge-based and model-based,object-oriented, iconic, real-time computer system capable of being usedby scientists as a framework to construct specific and interactiveinformation, modeling and simulation applications in the chemical andbiochemical domains. It provides a variety of domain-specific,application-independent tools, graphical interfaces and associatedmethods to provide users the capability to extract, interactively orautomatically, the integrated knowledge contained in those applicationsor models build by the modeler, and to further use those models, amongother uses, to navigate through the pathways of processes and explorethose processes and their participants, or for quantitative real-timedynamic simulations. The computer system comprises a plurality ofmethods, hereinafter called “the methods” and diverse sets of objects,some of them representing either entities or concepts, hereinaftercalled bioObjects, and other representing other auxiliary structures,which in general are referred as tools. Objects are arranged inobject-class hierarchies and workspace hierarchies. Methods may beassociated with a class of objects, an individual instance of a class,or a specified group of instances within a class. Libraries of prebuiltknowledge-based generic bioObjects are provided as the building blocksthat can be combined in prescribed ways to create diverse and newknowledge structures and models.

In the description of this invention, the following clarificationsshould be noted:

a) a person using the underlying Shell to define the domain-specificapplication-independent but knowledge-based classes of objects, theirassociated methods, and the prebuilt knowledge-based building blocks ishereinafter referred to as a “developer”, while the person using thosebuilding blocks to build application-dependent models, or expanding thelibraries of prebuilt bioObjects, is hereinafter referred to as“modeler”, and the person that extracts and uses the accumulatedknowledge and runs simulations, is hereinafter referred to as a “user”.

b) text expressions are case insensitive, and what is referred in thedescription as bioObject or bioProcess, may be referred to in the codeas bio-object or bioprocess, or the names may appear in the code in lowcase or all capitalized;

c) a window refers to a display of the program on a computer screen,while a workspace refers to one of the many containers of objects thatmay be displayed within a window, and the subworkspace of an object isthe workspace (only one) that may be associated with that object and mayencapsulate the components of that object (composite object);

d) the selection of a menu option is equivalent to clicking on thatoption, and both expressions are used in the following description ofthis invention;

e) expressions similar to “selection of option A displays B” is a shortform meaning something similar to “selection of option A causes theinvocation of the action or procedure specified in the definition ofoption A and, as a result of the execution of such action or procedure,B is displayed in the window from which option A was selected”

The preferred embodiment of this invention integrates a variety ofknowledge representation techniques, as required for creation of virtualmodels of complex systems. The accuracy and validity of knowledge-basedsystems correlates not only with the quality of the knowledge availableto the modelers but also with their ability to understand, interpret andrepresent that knowledge. The object-oriented approach provides apowerful knowledge representation of physical entities (such as organs,cells, DNA, enzymes, receptors, ligands, mediators, or ions) andconceptual entities (such as processes and cellular interactions,quantities and rates). In this system, data and behavior are unified inthe objects. Two characteristics of object-oriented environments,encapsulation and inheritance, are very important for the design andimplementation of the system of this invention. Objects are definedfollowing class hierarchies in which the definition of each classspecifies the types of attributes characteristic of all subclassesand/or instances of that class. Encapsulation permits to hide thedetails behind each object, and encapsulation is implemented in twodifferent forms: a) at the attribute level, is the standard form ofencapsulation of object-oriented approaches; and b) at the workspacelevel, a less common form of encapsulation related more to the iconicapproach. Multiple levels of workspace encapsulation are supported(FIGS. 18 and 24), allowing modules with a multilayered structure withincreasing levels of detail. Since the subworkspace is not inheritedthrough the class hierarchy, neither are the components. However, once ageneric instance for a class is completed with components in itssubworkspace, it can be added to the corresponding palette (FIGS. 18,20, 23) as a prebuilt building block, and the resulting composite objectcan be cloned, in which case all encapsulated levels of subworkspacesare also cloned. The interpreted domain-specific framework approach iseasy to use and allows rapid building of iconic models. Thedomain-expert knowledge is represented in an easy to understanddeclarative from, separated from the methods that specified how thatknowledge is used by the program. The iconic approach allows the userconfiguration for building of models to consist primarily of connectingiconic objects and filling out their tables of attributes. The visualframework enables reasoning about the interactions between objects andtheir compartmentalization. This graphical programming capability isparticularly important because it allows the continuous expansion andmodification of the system, necessary for this type of applications, byscientist modelers with no programming skills. Its modularity allows todelete, modify or create parts of the system without affecting theoperation of the rest of the system. The knowledge can also be extendedand reused under different contexts, and in different new applications.The same hierarchic architecture used to develop the bioObjects can beextended by the modeler to expand the libraries of bioObjects, creatingnew objects or by cloning, configuring and modifying existing ones. Withits iconic format, the system can be easily browsed and understood bythe user.

The principle followed in the design and implementation of thisinvention is the breaking down of the knowledge about entities,processes and pathways down to smaller functional units, to a levelwhere the following requirements can be met: a) allowing their repeateduse as building blocks in a variety of situations; b) allowing access tothe structures and processes that are susceptible to control andregulation; and c) keeping the number of units manageable. Thefunctional units, hereinafter called composite bioObjects, are furtherbroken down into operational and standardized knowledge and datastructures. These generic but domain-specific iconic objects addflexibility and allow the user to open tables of individual instances toinput data, modify existing bioObjects, or create new types ofbioObjects. Following such principle, the system of this inventioncomprises a variety of domain-specific knowledge structures, all encodedas objects, with further components, such as: a) other iconic bioObjectson their subworkspaces, b) standard graphic user interface objects suchas buttons to request data displays or input panels, c) non-iconicobjects, which might be pointed to as attributes of other objects, suchas domain-specific variables, parameters, lists or arrays, or d) methodsrefering to the bioObjects, their attributes or their components, suchas actions, formulas (Tables 83,-88), relations (Tables 75 and 218a,rules (Tables 76-81) and procedures (various Tables), and which can beinvoked interactively by the user from either the bioObjects or theircomponents or from the standard graphic user interface objects ordomain-menus, or invoked programmatically by other rules or procedures,and which are hereinafter referred to as the associated methods. It isan object of this invention the manner in which the combination of thosetypes of knowledge structures encode, in a distributed form, the dataand the knowledge that enables the system to compute and to reason aboutconditions and events defined by the developer, the modeler, any otherexternal source, and/or generated during a dynamic simulation. Based onthose conditions, the knowledge structures are used by the Shell toinfer or simulate different behaviors, while data, information and/orcontrol are propagated and actions are executed. As can be observed bycomparison with the prior art previously discussed with the descriptionin the sections to follow, the form of knowledge representation in theiconic models, libraries of composite bioObjects, graphical interfaceand associated methods, and the overall organization of the systemobject of this invention offer a very different and innovative approachthat not only integrates the qualitative and quantitative description ofchemical and biochemical objects with a set of state and dependentvariables, such as amounts and rates, but also incorporates temporalreasoning and generates dynamic simulations.

Therefore, one innovation of the present invention is the iconicinterface and associated methods used to partition the domain knowledgeinto modular and interactive knowledge structures represented as iconicobjects, the connections, interactions and relations between thosestructures, and their behavior, incorporating declarative and proceduralinformation. Each independent functional iconic building block, acomposite bioObject, comprises a set of iconic bioObjects and otherobjects and represents either:

a) the descriptive characterization of single units of molecularentities, molecular subcomponents, or molecular complexes, hereinaftercalled in general bioEntities (FIG. 18);

b) the description of a number of units with the same characteristics,defined as a population of such molecular entities or molecularcomplexes in specific states, hereinafter called a bioPool, whichtogether with the potential inputs to and outputs from such bioPool isencapsulated in what is hereinafter called a bioReservoir (FIG. 8);

c) the interactions between fractions of different such populations ofmolecular entities or molecular complexes, or their transitions from onemolecular state or discrete compartment to another over time,hereinafter called bioProcesses (FIG. 7); or

d) the organization and integration of networks of pathways composed ofsets of linked bioReservoirs and bioProcesses (FIGS. 7, 8) organized incompartments, hereinafter called bioModels (FIG. 24). Low levelbioModels can be further organized in discrete location and timecompartments, representing the subcellular organelles and the phases ofthe cell cycle respectively, which are themselves components of higherlevel compartments representing single cells. All those typescompartments are themselves bioModel subclasses at different levels ofcomplexity and detail in a hierarchy of subworkspaces.

BioObject, a subclass of the class objects provided by the Shell, is thesuperclass at the top of various hierarchies of classes of objects suchas the class hierarchies of bioEntity, bioReservoir, bioProcess,bioModel, and others. Each instance of a class is characterized by theset of attributes defined for the class, which can be inspected in thetable of attributes attached to each object by selecting it with themouse. Some attributes define configuration information, while otherattributes describe the composition and characteristics of the object,and still others hold dynamic state information, such as the currentvalue(s), data histories, and status. The value of some attributes of anobject, such as the variables and parameters, can be dynamicallymodified at runtime.

The knowledge-based modeling and simulation system of this inventioninterprets the information and data contained in the BioObjects' datastructures, based on additional knowledge contained in the form ofrules, formulas or procedures. Model-based knowledge is integrated andencapsulated in the structural, functional and behavioral modelsrepresented by the virtual iconic models or bioModels. Those virtualmodels are defined qualitatively (FIG. 24) by the locations,connections, and relations of their components, and quantitatively bytheir encapsulated mathematical models (FIGS. 12-15). The constants,parameters and variables that define those models are distributedthrough the different types of bioObjects, defined as their attributes,and the corresponding formulas and functions relate those datastructures to others and characterize the particular system. The systemintegrates propagation of values, inference and control throughout thepathways. Model-generated results are used as input information for theinference engine, and dynamic models can also reason about the historicvalues of its variables as well as projecting values of variables intothe future. All those different types of knowledge are added by humandomain experts to incrementally build an integrated Virtual Model.

In the current implementation of this invention, the variables embeddedin the model that are set to get values from the sensors (such as theconcentrations of the corresponding bioPools) inherit their propertiesfrom two parent classes: a class of float-variable and a class ofinterface-data-service. One of the attributes of the later class isInterface, which value defines the interface that will provide thecurrent value for such variable. The value for such variable, the sameas for any other variable in this system, can be set to be evaluated atset intervals, or it can be set to its value having a value that expireafter a set validity interval. When the inference engine seeks the valueof said variable, either at the preset update intervals or when suchvalue is needed but has has expired, a request if set to the specifiedinterface to provide a value. Such variables are registered in theinterface. After the interface is set-up, when the start_interfacefunction is called by the program and the connection established betweenthe interface (107) process and the computer program (115) process, thefunctions executed by the interface comprise: initialize_context(initializes the connection between the program and the interface),pause_context, resume_context, shutdown_context, receive_registration(called when the program seeks to map for the first time a variable toan external data point); receive_deregistration, poll for data (checksperiodically which registered variables need updating, retrieved datavalues available, packages the data into the data structure used by thereturn functions, and sends the data back to the program (115); get_data(called when the program requests data service for one or moreregistered variables); set_data (called when the program executes one ormore set actions within a rule or procedure, it sends a request to theinterface to set the external data point to which the registeredvariable is mapped, it also may call interface return functions tochange the value of the registered variable after its correspondingvalue in the external system has been changed). The interfaces performalso many other functions related to passing objects and messages,checking data types, and several other API functions.

In the current implementation of this invention, methods such asprocedures, rules, formulas and relations, defined in a structurednatural language, may apply to a single instance or a group ofinstances, or to a class or a group of classes, and they may includereferences to connections and to connected objects. Methods may refer orapply to the values of attributes at different time points or to thebehavior of variables or parameters over time. They can perform inresponse to: a) given events or conditions, b) at predetermined timeintervals, or c) upon request from other rules or procedures. Methodscan be executed in real-time, in simulated time, or as fast as possible,implementing different strategies concurrently and over extended periodsof time. Arithmetic and symbolic expressions can be used independentlyor combined, and dynamic models may include from non-linear differentialequations to logic expressions to simulate both analytic and/orheuristic behavior.

The following sections will also discuss various of the innovativeteachings of this invention that refer to methods and tools used toretrieve and display the stored information and data, encapsulated ingraphic and interactive models of complex molecular mechanisms andpathways, allowing to:

a) interactively navigate through those pathways (FIGS. 31, 32, 35, 36);

b) perform queries that refer to:

-   -   i) the functional modular structure of the bioEntities involved,    -   ii) the position of bioPools downstream or upstream of the        bioPool taken as reference,    -   iii) to the location in cellular compartments of the processes        in which those bioPools of bioEntities participate, or    -   iv) any combination of the previous three (FIG. 30); and

c) dynamically simulate the kinetic interactions between thebioReservoirs and bioProcesses, to mimic the regulation and function ofcellular systems (FIGS. 33, 34).

The system of this invention can be implemented layered on top of anyadvanced real-time object-oriented expert-system development environmentor shell that support the methodologies described throughout thisapplication, or it can also be developed in total or in part fromscratch, parting from any combination of hardware and softwareplatforms, either already existing or developed for this or otherpurposes, that provides the capabilities and means required for thisimplementation. In particular, and for the purpose of illustrating apreferred embodiment of this invention, this system is currentlyimplemented on the Version 3.0 or Version 4.0 of G2 Real-Time ExpertSystem (G2) shell, an object-oriented development and deployment systemproduced by Gensym Corp. of Cambridge, Mass., and hereinafter referredto as the “Shell”, which supports dynamic simulation and temporalreasoning. While many of the underlying capabilities referred to beloware common to other static or real-time expert-system developmentenvironments, some capabilities may be currently specific for G2, butequivalent capabilities can be expected to be developed by others. ThisShell currently runs on several UNIX-based platforms, and it is beingextended to Windows NT. For detailed information about the underlyingcapabilities of this system, Gensym Corp. should be consulted. Among thegeneric, domain-independent, tools and capabilities provided by theShell, are:

a) a proprietary structured natural language, supported by a pop-up texteditor, for encoding the object definitions as well as rules,procedures, functions, relations, formulas and values;

b) a graphical language, supported by an icon editor, based on a visualrepresentation of connected icons, and the capability to associateworkspaces with objects, which allows the organization of knowledge atdifferent levels of detail in objects within objects, each representedby icons. The Shell also allows to reason about those iconic objects,their connections, and their locations in the workspace hierarchy.Distant connections (611) can be also maintained, and reasoned about,between objects in different workspaces (602, 603);

c) an inference engine, which interprets relations, functions, rules andprocedures;

d) a simulator, which may compute the values for three types of linearor non-linear systems: dependent variables or parameters, from algebraicequations; discrete-state variables or parameters, from differenceequations; or continuous-state variables or parameters, fromdifferential equations;

e) a supervisor, which controls operations, such as task prioritization,asynchronous concurrent operations, and real-time task scheduling. Otherreal-time features include time stamping and validity intervals fordata, history-keeping, and real-time data interfaces;

f) a set of predefined generic object classes;

g) several inference methodologies, such as data-driven, event-driven,goal-driven or time-driven capabilities;

h) a graphic user interface development environment to create: usercontrols such as action buttons, radio buttons, check boxes, and type-inboxes; and graphic displays such as readout-tables, graphs and charts;

i) dynamic messages, to pass information to the developer and user;

j) an inspect facility, with various capabilities used in this inventionto allow developers and users to: a) show on a workspace the classhierarchies of any specified class, or all the members of any specifiedclass, as well as the workspace hierarchy of any specified object, orthe module hierarchy; b) go to any specified object in theknowledge-base, displaying that object in the center of the screen; c)search for a set of objects that fit a set of specified characteristics;d) highlight or replace any word or expression within any specifiedclass; and e) write to a file the text of the table of attributes of anynamed item, or of all the items upon a named workspace;

k) a describe facility allows, through the “describe” option of anyobject to find out the relations between objects or the elements ofdynamic lists, making possible to go to the icon of each element of thelist, which provides a very useful facility to navigate to objectsselected following desired criteria used to fill the list;

l) a tracing and debugging facility facilitates such developer's tasks;

m) the capability of breaking an application into a hierarchy ofdependent modules;

n) the message board manage text messages generated by the system, suchas configuration error messages, prompts generated at run-time, orexplanations requested by the user. The system of this invention alsouse those facilities to generate messages that show up on the screen toindicate a wide variety of abnormal conditions appearing during modelingor simulation, such as all those expressions used in many procedureslisted in the tables as: inform the operator that “ . . . ”; and

o) support for distributed applications by allowing differentknowledge-base modules to be located in several workstations.Communication between distributed modules is handled transparently bythe Shell's built-in network protocols. A simulation application can bedistributed among several workstations when the knowledge-base isdistributed as well, allowing computer resources to be adjusted toachieve the necessary performance.

The Shell also provides a predefined object class, called“object-definition”, which iconic instances have a table of attributesthat provide frames or templates to define the attributes of new classesof objects, such as: a) the names, types and default values for newattributes for that class, which are added to, or overriding, the set ofattributes inherited from the superior class; b) an icon specific forthat class, which can also be inherited; and c) the stubs that definethe types of connections specified for that class. Instances of the sodefined classes can be created: a) programmatically, in which case theyare transient when created, but can be transferred to a workspace andthem be made permanent; or b) by selecting the “create-instance” optionfrom the menu of the object-definition, which creates an iconic instanceof that class that sticks to the mouse-pointer and can be dropped byclicking on a workspace. Additional instances can be also created byselecting the “clone” option from the menu of a previously createdinstance. G2 provides an inference engine that operates on informationfrom different sources, such as: values compiled in the knowledge-base,simulated values, and values received from the user, sensors or otherexternal sources, and responds to events from the user, simulator, orexternal data servers.

Each variable has an attribute called data-server, which valuedetermines how said variable receives its value. Options are theinference engine (the system gets the value from an specific formula, ageneric formula, or a data seek, in that order), the simulator (thesystem gets the value from an specific simulation formula or a genericsimulation formula, in that order), or interfaces to external monitoringdevices, databases, or file systems. By default, in he currentimplementation of this invention, the variables are simulationvariables, which means that their data-server is the simulator. Asimulation variable may have two values: the current value may beoptionally provided by inference engine or one of the interfaces, whilethe simulated value is provided by the simulator. Or it may have thecurrent value provided by the simulator, in which case it has that suchvalue. In those particular instances where the variables correspond tosubstances that are being monitored in the reactor, the variables arethen set to receive two values, the current measured value, provided bythe external sensors through the appropriate interface, and thesimulated value. The non-simulated values may be set to expire after adesired period of time, so that the inference engine seeks a new valuewhen needed. Different part of the simulation may run at differenttimes, as desired. The time interval for a simulation may be specifiedat 4 different levels, in the following order of priorities: eachvariable may have its own update time; each generic simulation formulamay have it own time increment, which applies to the group of variablesto which said generic formula applies; the simulation-model has itsupdate interval, which applies to all the variables included in saidmodel; and finally, the whole knowledge-base has a default simulationtime increment that applies when none of the other have been specified.

The current implementation of this invention also allows the inclusionof fuzzy-logic statements, such as if ( y<6(+−3) )/=( z>4(+−2) ). Fuzzytruth expressions are available only in the inference engine, rules, andprocedures, while the simulator only uses discrete values. Fuzzyoperators comprise: is more true than, is less true than, is not moretrue than, is not less true than, =, and /=. The fuzzy truth-values areassigned to expressions with a fuzzy truth band in parenthesis, such as:the concentration of receptor1>0.8(+−0.2). The truth-threshold is setfor the inference-engine as a whole. For example, if said threshold isset to 0.7, for the antecedent of a statement to be true it must begreater than or equal to 0.7.

The current implementation of this invention improves the control of thesequential addition of inputs to the reactor, at times and in amountsthat are appropriate for the status of the biochemical processes withinthe reactor. In the example below, it is expected that the concentrationof receptor1 expressed on the cell surface, which is available fordetection by the receptor1-sensor, is induced at some point by someinternal events that happen inside of the cell. Such internal events arethe result of complex interactions, induced by the occurrence of somecombination of previous events, including those events induced as aresult of some previous addition of some other ligand, or any otherchemical or combination of chemicals, controlled by one or more otherpumps controlling inputs to the reactor. This fine control based on theknowledge about the mechanisms involved, avoids, for example, to addcostly ligand1 to the reactor at a time when the cells are not ready touse it, with the likelihood that it will be destroyed by other enzymes,and the risk that it will not be anymore active when the cells becomeready to make use of it at a later time. It also could prevent thatligand1 exerts damaging effects to the cells when provided when cellsare in the wrong state, as it has been demonstrated for variouscompounds that induce programmed cell death when signal from saidcompounds are transmitted to the cell in the absence of other requiredsignals.

An example of such control statement using fuzzy-logic is: “if theaverage over the last 3 minutes of the concentration ofreceptor1>0.8(+−0.2) and the average over the last 3 minutes of theconcentration of ligand1<0.5(+−0.1) and the average over the last 3minutes of the flow-of-pump-L1=the flow-of-pump-L1 then conclude thatthe flow-of-pump-L1=the flow-of-pump-L1* 1.2 and calladjust-flow-of-pump (flow-of-pump-L1)”, wherein: a) the concentration ofreceptor1 and the concentration of ligand1 are variables coupled to thecorresponding sensors for those substances in the reactor, which aremonitoring devices external to this system; b) the statement. “theaverage over the last 3 minutes of the flow-of-pump-L1=theflow-of-pump-L1” prevents additional changes in the flow for anspecified period of time, to allow the system to adjust to the lastchanges; and c) adjust-flow-of-pump(flow-of-pump-L1) is a remoteprocedure call that activates the external device that controls the pumpcontrolling the delivery of ligand1, while passing the value of thevariable flow-of-pump-L1 to it.

In an alternative implementation, the bioPools of the components thatregulate critical cellular events, or of those that are monitored in thereactor, may have an additional attribute defined as a fuzzy logicparameter, which value can then be accessed by differentmonitoring/control statements. Fuzzy values may take values from −1.000true (certainty of being false) to 1.000 true (certainty of being true).The value of said parameter could be provided by a rule, or by a genericor specific formula defined by the modeler, which is dependent on eitherthe measured or simulated value of the corresponding concentrationvariable, as preferred. For example, said fuzzy attribute may be called“availability”, and its value could be provided by a rule, such as: “ifthe concentration of any substrate S>the Michaelis-constant of S/2 (+−the Michaelis-constant of S/2) then conclude that the availability of Sis true”.

This means that whenever the concentration of any given substrate isgreater than or equal to 85% of its Michaelis-constant, with thetruth-threshold set to 0.7, then said substrate is considered to beavailable (availability is 0.7 true) under this setting. If theconcentration of said substrate is smaller than 85% of its Michaelis-constant then it is considered to be not available (availability is lessthan 0.7 true), and if the other conditions have been met, it wouldcause the flow-of-pump-S to be increased. For example, themonitoring/control rules could then refer to such fuzzy logic variablesbeing true or false, and would allow the modeler to modify the rules forsingle or groups of bioReservoirs, without the need to modify thecontrol rules, such as: “if the average over the last 3 minutes of theavailability of receptor1 is true and the average over the last 3minutes of the availability of ligand1 is not true and the average overthe last 3 minutes of the flow-of-pump-L1=the flow-of-pump-L1 then . . .”

The current implementation of this invention also allows to:

a) use the simulated Virtual Model to entirely take control of when andhow the inputs are added to the reactor, (or the outputs, such theculture medium or cells, removed); or

b) synchronize the simulated model to the processes in the reactor, byallowing certain critical measured values from the reactor to providethe values for their corresponding variables in the simulated model,which are then used by other dependent variables and propagated down thesimulated model. Such synchronized simulated model is the used asdescribed in a).

The Virtual Model: Domain Specific Knowledge Representation

The computer system, methods, and interfaces that are the objects ofthis invention can be applied to visually model and quantitativelysimulate any type of complex system involving any type of processes andtheir participants. The set of palettes of prebuilt building blocksprovided should reflect the needs of the particular domain in order tofacilitate the tasks of the modeler, permitting the basic paradigm of“Clone, Link, Configure and Initialize” and other automated methods. Alibrary of prebuilt Query Panels and other panels, such as Navigation,Simulation and Experiment Panels facilitate the tasks for users torapidly extract and dynamically use the knowledge and data contained ineach specific application. The description that follows is based on oneparticular domain, that of biochemistry, to illustrate one of theimplementations of such computer system, methods, and interfaces.However, similar computer systems, methods, and interfaces can beimplemented in a similar manner for domains other that of biochemistry.For example, in a business domain, what in this description is calledbioEntities can be substituted with different types of entities, such asemployees or projects, and bioProcesses can be substituted with thedifferent activities in which both interact, the bioReactants with theroles they play in such activities, which frequently may involve otherparticipants. Employees are like enzymes, with the more capable havinghigher rate-constants. Projects are like the substrates, and employeesmay have higher affinities for some projects, with a likelihood thatthey will interact in a process in which a quantifiable measure of theoutcome, such as quantity or level of quality, will depend onquantifiable measure of the employee, lets say amount of time put onthat project and level of specific experience. The bioPool of eachemployee could represent his/her time, and the max-amount could be setto a day, a month, a year, or any other amount. The Contribution to eachproject would be the amount of time invested in that role, while thedifferent activities will compete for the time left available.

In the remainder of the description of this invention, the focus will beon biochemical systems, which are complex, hierarchical, heterogeneousand non-linear systems, involving an interplay between the processes oftransport, reaction and conformational change. They are regulated bycybernetic flows of information. The system object of this inventionuses a kinetic approach to model these chemical and biochemical systems,rather than a thermodynamic interpretation, although thermodynamicvariables are also included to allow modification of the behavior of thekinetic system. The current approach, which focus on the amounts ofentities, such as concentrations, densities, scaled-amounts, or otherquantities of each bioReservoir's bioPool of cells, molecules, ormolecular complexes, in a particular state, as a continuous function oftime, and on specific coefficients or rate constants that, inconjunction with the current values of those amounts, define thevelocity of a bioProcess's bioEngine, and the rates of consumption ofcertain bioReactants that participate in such bioProcess or the rates ofproduction of its bioProducts, which are dependent on such velocity andspecific stoichiometric coefficients, and which are equivalent to therates at output and input from their connected bioPool, respectively.This kinetic approach is closer to the way of thinking of biochemistsand molecular biologists.

The cellular representation in this invention aims to reproduce the factthat function is not inherent in any one component of the cell, butrather emerges from the cooperation of many components, which depend oncompartmental organization and functional relationships, and deals withmultiple levels of biological and biochemical structural complexity,such as physiological systems, organs and their compartments, cells,subcellular organelles, and molecules. The schematic representation onthe left side of FIG. 2 shows an abstraction of the types of molecularand cellular relationships and interactions that are modeled andsimulated, with unlimited levels of encapsulation being an importantfeature exploited by this system, allowing to start dealing with a topicwith a high-level representation, and then successively “clicking” intoobjects of interest, to show the next level of detail. This high-levelexample, at a low-level of detail, can be summarized by what abiomedical expert could describe as “Oncostatin M (201) is a biologicalresponse modifier that induces different responses on different celltypes: a) it induces certain classes of cells (202) to secrete thecytokine IL-6 (203); b) it induces differentiation of primary,cobblestone-like AIDS-KS cells (204) into mature spindle-like AIDS-Kscells (205), which are capable of long-term growth in agar when bothOncostatin M and IL-6 are present”. This statement and its graphicrepresentation combine knowledge at very different levels of detail,equivalent to the way human mind can abstract knowledge. For instance,it deals with both molecules and cells as entities as if they weresimilar types of structures, when in reality that is very far away fromthe reality. Cells are composed of thousands of different types ofmolecules. In some cases, an overall pathway within the cell can beknown to some extent while in others the mechanism of a biologicalresponse may be totally unknown.

The system of this invention can be described in very similar terms. Onthe one side, bioPools of cells and molecules can interact with eachother, in any combination in a variety of bioProcesses, as shown in FIG.29 and described in more detail later. On the other side, asschematically shown on the right side of FIG. 2, the components of eachtype of cell can be modeled and analyzed at increasing levels of detail,as encapsulated in various layers of bioModels (202-212, 216, 217),until at the end of the layer hierarchy (213) the single bioProcesses(214) are represented, and their associated bioReservoirs (215), whichpoint to their associated bioEntities. In general, the signalstransmitted by the cellular signaling or regulatory pathways progresswithin each cell in repeated cycles, driven by external and internalevents, and sometimes time in a synchronous way, and they may extendfrom cell to cell, some times activating the producer cell as well. Antypical but simplified high-level example of a cellular signalingpathway driven by a certain agonist, such as Oncostatin M, is shown inFIG. 2 as: agonist (201)->receptor activation (206)->signal transduction(207) ->gene transcription (208)->mRNA processing (209)->proteinsynthesis (210)->secretory protein processing(211)->transport->(receptor activation). By clicking again and again onobjects at each level, one can focus on specific areas at the desiredlevel of complexity. In the one example shown in FIG. 2, this multipleencapsulation process has been abstracted. It illustrates acell-bioProcess in which, after a cell (202) has been activated byOncostatin M (201), the secretion of interleukin IL-6 (203) is induced,but only after the sequential activation of numerous biologicalprocesses (bioProcesses) (214), involving numerous pools (bioPools)(215) of biological entities (bioEntities), contained in bioReservoirs,which are encapsulated in this simplistic example within lower-levelbioModels, each representing one the major group of steps of the pathwaymentioned earlier (206-211). Clicking on any of these bioModels, such asDNA-transcription (208) or secretory-protein-processing (211) displaystheir subworkspaces (212 and 216 respectively), which may contain a setof other bioModels (such as those superior to 213 and 217), and theprocess can be repeated any number of times, until reaching bioModelscomposed of sets of bioProcesses (214), and their related bioReservoirs(215).

To represent biochemical systems it is necessary to refer to thecharacteristics and current state of single entities, and at the sametime to refer to populations of entities with similar properties. In asmall application for molecular genetics, Karp (1989) was only able torepresent and implement the overall system either as a network ofmolecules interacting in a pathway or as a network of variablesquantitatively representing the processes in a pathway, as separatedsystems, but he was not able to integrate both, the description ofparticipating entities and the quantitative processes. This integrationis one the teachings of this invention. Furthermore, contrary to thesystem of this invention, his representation was static and did notinclude temporal reasoning, having all processes represented asinstantaneous reactions.

FIG. 3 shows how the intermediate submodels are preferentially organizedin two types of superior compartments (301) of a cell represented by thedifferent subsequent cell states represented by the cell-phases(302-308), and within each of those the cell-compartments (309-316) thatrepresent the different cell organelles. Each of the cell-phases containa detailed description of large numbers of components, encapsulated inthe different sublayers, and a set of characteristic parameters andtime-variant attributes (317-320) that can be used to model theprogression of a population of cells through those compartments. Thatconcept is schematically represented in FIG. 4, where some of the cellsof that population X1 may keep cycling through those phases (401), asrepresented by the bioPools of cells in each phase: Go (404), G1.1(406), G1.2 (409), S (411), G2 (413), and M (416), if some specific andrequired conditions are met, as specified by their correspondingtransitions represented here by the translocation-bioProcesses (405,408, 410, 412, 415, and 417), or they can exit the cycle if other set ofconditions are met (407) and differentiate to another related cell typecharacterized by different functions and therefore a different cellcycle (402, 403) or if yet other set of conditions are met (407) theymay dye by programmed cell death or apoptosis (414).

A cell-bioModel is represented as a set of bioReservoirs andbioProcesses, systematically organized in the subworkspaces of otherbioModels contained in such cell-bioModel, which represent each aseparate compartment in time and location, and within those, sets ofbiologically related processes or pathways. At higher levels oforganization, bioProcesses connected to bioReservoirs of cells orcell-interactions are organized into bioModels that represent organcompartments, which are organized into organs, and which are organizedinto physiological systems. Different cell-bioReservoirs encapsulateeither populations of different cell subsets or populations of the samecell subset in different stages or in different locations. Each of thosecell-bioReservoirs makes reference to a predefined cell-bioModel, whichhas a characteristic phenotype representative of the population of cellsencapsulated in that cell-bioReservoir. The different phenotypes maycharacterize: a) different cell lineages, b) different stages ofdifferentiation within the same cell lineage, or c) cyclical changes inthe cell characteristics over time, within the same differentiationstage. Phenotypes are sets of characteristics measurable on intactcells, and the transition of cells from one phenotype to another arerepresented in the present embodiment of this invention as atranslocation of a fraction of the cells from the cell-pool of theformer subset to the cell-Pool of the later subset. The events thattrigger those transitions may be unknown, but they may be recognized bychanges in measurable or functional markers, such as the appearance of anew receptor, the synthesis of DNA, the secretion of specificinterleukins, or mitosis, and the relative time in which they appear ordisappear may be known, in which case those transitions are time-driven.More specifically, a cell-bioEntity, which is a high-level externalrepresentation or description of a cell, may make reference to acell-bioModel, which as described above is internally characterized byits components and mechanisms, represented by the pathways ofbioReservoirs and bioProcesses.

FIG. 5 is a diagrammatic introduction to important concepts upon whichmuch of the processing and reasoning of the current invention is based,where the different layers of arrows represent the direction of flow ofinformation and data. In this system, pathways refer to sets ofalternating layers of bioReservoirs and bioProcesses connected to eachother to indicate participation of the populations or pool of chemicalsrepresented by the bioReservoirs in the processes represented by thebioProcesses, and to further indicate that the processes represented bythe bioProcesses provide inputs to the pool of chemicals represented bythe bioReservoirs. The result of those specific connections is amultidimensional network of interconnected biochemical pathways thatdetermines the basic architecture of this system. That basicarchitecture also defines the resulting network of parameters andvariables, and the specific arguments for the generic formulas thatprovide the values for those variables are determined by thoseconnections. A bioReservoir (501) is an iconic knowledge-structure thatencapsulates a bioPool, which refers to a population of a single type ofmolecule or complex contained within an imaginary space. A chemicalprocess is represented as a bioProcess (502), an iconicknowledge-structure that encapsulates various components, including abioEngine (504) that controls the Velocity at which the input(s) of thebioProcess, the bioReactant(s) (503), are consumed and the output(s),the bioProducts(s) (505), are produced. BioReactants can also be said torepresent the participation of certain number of units of a bioPool asthe input to a given bioProcess, and more specifically, the role thatsuch number of units of the bioPool play in such bioProcess. BioProductscan also be said to represent the participation of certain units of abioPool as output from a given bioProcess Both types ofknowledge-structures integrate bioProcesses with bioReservoirs in acomplex architecture that allows to model the kind of complex systemsand multidimensional pathways that are characteristic of the domain ofthis invention. In such integrated system, units from the bioPool of aconsumable bioReactant are transferred to the bioPool(s) represented byone of its bioProduct(s), at a dynamically computed rate. The termupstream is used hereafter to indicate those bioReservoirs,bioProcesses, or pathways that affect the inputs to a given bioReservoiror bioProcess, while the term downstream is used hereafter to indicatethose bioReservoirs, bioProcesses, or pathways that are dependent uponthe outputs to a given bioReservoir or bioProcess.

The fast and short-term regulation, such as the temporary inhibition oractivation of enzymatic activity is modeled through separate bioPools ofthe more active and less active (or inactive) forms. Each modificationof molecules or complexes that results in qualitative or relevantquantitative changes in their activity or function is represented astransfer of units between those different bioPools. Examples of thosemodifications include post-translational modifications of proteins,including allosteric changes, such as phosphorylation, isoprenylation,and so on. The slower, long-term, regulation of enzymatic activity ismodeled by induction or depression of protein synthesis, which optimizesits concentration for the newly required function. Constitutive enzymesand receptors are considered to be synthesized and degraded at aconstant rate, resulting in a constant steady-state level. In regulatedmolecules environmental signals, such as the extracellular availabilityof a hormone or growth factor, for instance, may cause the rate ofsynthesis or expression of new surface receptors to increase X-fold. Ifthe rates of outputs are not concurrently and equally regulated by thesame factor, then a new steady-state level will be reached, which may ormay not return back to normal after the activating signal ceases.Examples of those modifications include: a) gene mutations and othermodifications, b) DNA transcription, c) post-transcriptional splicingand other modifications of RNA, and d) translational regulation.

BioPools, bioReactants, bioEngines, and bioProducts are classes of basicbioObjects that further encapsulate a variety of knowledge structures,including quantitative attributes, parameters and variables, whichvalues, provided by simulation formulas, can be dynamically simulated inreal-time. The amount of such units comprised in a bioPool, representedby a variable such as Concentration or other appropriate amount, isdynamically computed at run time, parting from an initial value orbasal-amount set by the modeler, or in its absence, from a default valueset by the developer. The arguments of the variables of these basicknowledge structures are the output values of certain other variablesand/or parameters that are attributes of either: a) the same bioObjectinstance or b) instances of connected bioObjects of different classes.For instance, an argument for the Consumption-Rate of some bioReactants(503) and for the

Production-Rate attribute of any bioProduct (505) is the value of theVelocity attribute of the connected bioEngine (504), while the values ofthe Contribution attribute of each bioReactant may be arguments of theVelocity attribute of the bioEngine. Furthermore, the Production-Rate(506) of some bioProducts and the Consumption-Rate (507) of somebioReactants are arguments for the Input-Rate and the Output-Rateattributes, respectively, of the bioPool to which they are distantlyconnected, while the argument of the Contribution of any bioReactant(503) may be the value of the Concentration attribute of the connectedbioPool. Told in a different way, note that: a) the flow of data betweenthe bioPool and a bioReactant is bi-directional, involving two variablesin the bioPool and two in the bioReactant, b) the flow of data between abioReactant and the bioEngine is bi-directional, involving two variablesin the bioReactant and one in the bioEngine, c) the flow of data betweenthe bioEngine and a bioProduct is unidirectional, involving one variablein the bioEngine and one in the bioProduct, and d) the flow of databetween a bioProduct and the bioPool is unidirectional, involving onevariable in the bioProduct and one in the bioPool. The reversibility ofany binding can be represented in two alternative ways: a) implicitlyreflected in the output of a single process, which is the balance in thepredominant direction (as represented by the specific or global kineticparameters), or b) explicitly modeled as two separated processes in theforward and reverse directions.

The value for the basal-concentration, basal-density orbasal-scaled-amount parameters of each population reflects thephysiological steady-state value, when the rate of change is equal to 0or equivalently when the sum of the inputs equals the sum of theoutputs. The bioPools representing synthetic agonists, antagonists orinhibitors, such as drugs or toxic substances, have abasal-concentration of 0.0, have no modeled inputs other than theuser-entries, and therefore the Σ inputs=entry value, at the compartmentwhere it is first introduced. However, it can have several modeledoutputs, including the participation in modification-processes andtranslocation-processes, in addition to the decay term that representsdiffusion, degradation and dilution. It is further constrained in thatthe [As]*(m+Σ outputs)≦[entry]. Concentrations are used in generalwithin classes of bioPools representing soluble entities. However, as itis found empirically in biological systems, most entities are associatedwith membranes, with large polymerized structures such as thecytoskeleton or the extracellular-matrix, or associated with one or moreother macromolecules forming complexes. This means that theconcentration of those bound entities is less relevant than the actualamount of those molecules that are available in the appropriatecompartment at a given time, and therefore the term density is used torepresent units per compartment. Furthermore, most simulations ofbiological systems are more meaningful in terms of relative amounts orratios among the quantities of interacting or regulatory molecules, andtherefore the alternative variable called scaled-amount is provided foreach bioPool, which is dimensionless and does not require units. Thevalues of the Velocity of the generic bioEngines, as provided in thePalettes, are computed using the default generic simulation formulasassociated with the subclass of parameter or variable associated withit, which by default are dependent on the values of a set of scaledvariables and parameters. The user can however replace them withinstances of other velocity-pvar subclasses from the library provided(FIG. 11), each with its associated generic simulation formula based onabsolute values (Table 85), depending on the subclass.

Life and growth depends upon closed cycles of mutually dependentinteractions. In a constant environment, the proportions of the variousconstituents settle down to constant values and a steady-state isreached. The steady-state correspond to an optimum state, since the lackof such balanced state would lead to rate-limiting steps. When theenvironment changes, those proportions move towards new values toachieve again optimum growth in the new environment. The principleunderlying this system's dynamic modeling is the network of acombination of state and dependent variables, encapsulated within thestructure of the bioObjects contained in the specified bioModel. ThebioObjects provided are programmed by default for steady-state modeling.A dynamic simulation is initiated after the introduction of desiredperturbations or initial conditions by the user, and the input datainitiates a forward chaining, which involves both control and data flowfrom bioReservoirs to its connected downstream bioProcesses, and fromthese to their connected downstream bioReservoirs, moving along thebioModel's pathways. Inputs from external control systems or databasescan be also forward-chained during run-time. A variety of methods arethen used to compute or infer new values for the variables orparameters, derive conclusions and pass on control signals, and triggeraction sequences, each as appropriate. The forward and backwardassociations between bioObjects for runtime execution are eitherinherent in the connections between the bioObjects or are explicitlyconfigured through the model-blocks. The required integration ofdataflow and sequential control mechanisms is accomplished in thecurrently preferred embodiment while taking advantage of the intuitivecapabilities provided by the graphical architecture, where thebioObjects encapsulate the data to which related methods apply, and theparameters and variables are hidden but their values can be displayed.The specific way the bioObjects are connected specify both data flow andcontrol flow, representing sequential or concurrent ordering ofprocedure execution, and the information needed to execute an algorithmis provided by or inferred from the architecture. The evaluation methodsof the bioObjects involved in the simulated pathways execute in parallelduring forward chaining, passing along the arguments to the posteriorbioObjects, while the arguments of the anterior bioObjects are passed tothem.

There are other parameters and variables defined in the system of thisinvention, which are also involved in the dynamic quantitativesimulations of the visually modeled systems, and which can beincorporated in two distinct and alternative forms of simulationreasoning, absolute or scaled, as will be described in more detail underthe heading Simulation Mode. For example, the factors that affect anddefine the transformation rates, such as the catalytic, binding ortransfer rate of a bioProcesses (here preferably encapsulated as theVelocity attribute of its bioEngine), are distributed as attributes ofthe various connected bioObjects and comprise:

a) the quantities of the bioReactants of different types, such asenzymes, substrates, inhibitors, and activators, or receptors, agonistsand antagonists, or components of a complex (here preferablyencapsulated as the Concentration, Density, or Scaled-Amount attributeof the bioPool connected to each bioReactant, which values can bedirectly incorporated into the equation that gives the value of suchVelocity, when using the absolute reasoning; or indirectly incorporatedinto the equation that gives the value of the Contribution attribute ofeach bioReactant, which holds an intermediary scaled value that isincorporated into the equation that gives the value of such Velocity,when using the scaled reasoning);

b) the values of specific kinetic parameters characteristic of each typeof bioReactant (here preferably encapsulated as: theEffective-binding-sites attribute of enzymes and receptors, and theMichaelis-constant, Equilibrium-dissociation constant, or equivalentattribute of substrates, ligands, or other bioReactants, respectively,which values can be directly incorporated into the equation that givesthe value of such Velocity, when using the absolute reasoning, or,alternatively, the Scaled-Michaelis.k, Scaled-equil.dissoc.k, orequivalent attribute of substrates, ligands, or other bioReactants,respectively, when using the scaled reasoning), or, alternatively, aglobal kinetic parameter specific for that bioProcess that replaces andrepresents the combination of the specific parameters of each of thebioReactants of that bioprocess (here preferably encapsulated as theRate-constant-sec attribute of its bioEngine);

c) the stoichiometric coefficients (here preferably encapsulated as theStoichiometric-coeff attribute of bioProducts and bioReactants); and

d) the effects of environmental conditions such as temperature and pHare also specifically defined as attributes, and can be integrated intothe simulation within the appropriate equations.

Chemical and biochemical reactions are continuous processes, within thetime intervals that are dependent on the type of reaction and theenvironmental conditions, with the balance of the reaction favoring ingeneral the forward direction. The strategy used in the system of thisinvention is to forward chain from inputs values from the user-interfaceor from databases. In the preferred embodiment of this invention, thespecific way the bioObjects are connected specify the sequential orconcurrent ordering of data flow, and the parameters of model equationsare included as object attributes. Model-generated results may be usedas input data for other simulated equations or as events to be used bythe inference engine. These dynamic models can also reason about thebehavior of variables in the past and project the behavior of variablesinto the future. Integrating the activities of the different parts of amodel system requires the simultaneous solution of a set of non-linearordinary differential equations and a set of dependent algebraicequations. In this invention, this system takes advantage of the twomethods of explicit integration supported by the Shell: either thefirst-order Euler scheme or the quadratic fourth-order Runge-Kuttascheme, depending of the desired accuracy of the computation. Theupdates of the different variables may be synchronous or asynchronous,as a result of the variables having equal or different update intervals.The dynamic values of variables or parameters may be displayed in bothdigital and graphic forms.

The default values and equations provided with the preferred embodimentof this invention, represent an steady-state modeling approach, sincebiochemical systems are better represented by steady-state than byequilibrium situations. The value for the Basal-Concentration of eachpopulation reflects the physiological normal steady-state value, whenthe rate of change is equal to 0 or equivalently when the sum of theinputs equals the sum of the outputs. Enzymes that are constitutivelyabundant and in their active form have no effect on the steady-state,since they are not rate limiting. However, regulated enzymes, such askinases and phosphatases among others, may be constitutive only in theirinactive form, and their Concentration influence the Production-Rate ofthe active form in the same way as the Concentration of a substratecontrols its consumption rate. In the system of this invention, theactivation-process of an enzyme (u other bioEntity) means consumingunits of the bioReservoir of the inactive form and producing units ofthe bioReservoir of the active form, and therefore it is the sametreatment as for any other substrate and product. The regulation ofenzymatic activity is modeled through separate bioProcesses thatrepresent forward or feedback inhibition or activation processes orpathways. Each modification of molecules or complexes that results inrelevant qualitative or quantitative changes in their function isrepresented as separate bioEntities, which are represented in separatebioPools and bioProcesses. Examples of those modifications comprise: a)gene mutations and other DNA modifications; b) post-transcriptionalsplicing and other modifications or degradation of RNA; c)post-translational modifications of proteins, including allostericchanges, phosphorylation, isoprenylation, and so on, and degradation;and d) modifications and degradation of other molecules. Synthesis anddegradation, as well as allosteric changes or other modifications, mayalso be implicitly modeled within the parameters that affect theVelocity of a bioProcess, or as separate mathematical model-blocksconnected to to bioPools as inputs or outputs.

The types of inhibitions in which a reversible or irreversible complexis formed, such as the binding of an antagonist to a cell-receptor, andthe feedback activation or inhibition by secreted products, are allmodeled as separate receptor-processes or complex-formation-processesthat compete in the background for the amount of cell-receptor availablein the common bioPool, according to their respective affinities andconcentrations. The reversibility of any binding is usually notexplicitly modeled, unless the complex is a target for regulation, andit is implicitly included in the output that is the balance in thepredominant direction (as represented by Ks vs. k1 and k−1).

In fast growing cells or organisms, the dilution factor resulting fromcell growth is represented by a parameter m, while in slow growing cellsdirect enzyme degradation is more important, since the levels of manyenzymes in animal cells is controlled by the balance between enzymesynthesis and degradation, called turnover. The synthesis of an enzymeis represented differently, depending on the available information orthe level of detail desired, as a zero-order process or as a first-orderor higher-order kinetics, proportional to the concentration of otherenzymes or regulators that participate in the complex processes of,while the degradation may have a first-order kinetics proportional tothe concentration of enzymes, or or higher-order kinetics, dependingalso on the concentration of other enzymes or regulators thatparticipate in the regulated degradation process. The total responseassociated with any particular population of receptors is represented asthe maximal activity of a single receptor in the activated state timesthe receptor density, or scaled-amount, of the bioPool representing thatparticular compartment.

The system of this invention deals with the “incomplete information”characteristic of biological systems by integrating the scaled orsemi-quantitative values with the absolute values, as discussed in latersections. The scaled-valued variables, such as scaled-amount, havevalues within the 0.0 to 100.0 scale to normalize the diverse ranges ofmagnitudes involved in the system. The default initial values of thescaled-basal-amounts vary within this range to best represent theknowledge about the physiological steady-state conditions. As a way ofexamples: a) a value of 100.0 may model an constitutive abundant enzyme,receptor, or complex-subunit in their inactive form, while this valuemay decrease at run-time as the value(s) of their active or otherderivative(s) increase, so that the total remains 100.0; b) a value of50.0 may model the normal steady-state catalytic concentration for aconstitutive regulated active state of an enzyme, or the steady-stateconcentration of a substrate, binding protein or ligand, or c) a valueclose to 0.0 may model any highly regulated induced molecule.

Temporal reasoning is important to model and describe the causalmechanisms that drive biological systems. Temporal reasoning is achievedin the system of this invention in several ways:

a) In general, temporal reasoning is implicit in this real-time systemduring a simulation, when the values of the variables and many of theparameters vary over time.

b) Entire contents of BioModels, such as those representing thesuccessive phases of the cell cycle, and other time-submodels withinthose phases, can be activated and deactivated over time by activatingor deactivating the subworkspace of such bioModels, as specified withinprocedures and rules, at pre-specified simulation time intervals, orbased on events generated at run-time, such as a certain variablereaching a threshold value, or a combination of both.

c) The subworkspaces of specific bioProcesses can be also programmed tobe activated for a specified period of time after their activation, asgiven by its activation-hold-interval attribute. This attribute can be adefault value or a value entered by the user or as modified at runtime.This is an alternative to having the control of the inactivation of suchsubworkspace based on another event. It can also be reasoning by acombination of a given time interval or a given event, whatever comesfirst, or by events triggering the change of the value of theactivation-hold-interval attribute in a pre-specified manner. One suchoption is to provide a tabular function such as by looking.

In the currently preferred embodiment of this invention, a unit of agiven chemical entity, referred to as a bioEntity that describes thecharacteristics and state of a single molecule or complex, is considereda separated knowledge structure, which is referred to as an attribute ofa bioReservoir and can be accessed from the menu choices of this andother bioObjects, such as a bioReactant connected to its bioPool, whichrefers to a population of molecules with the characteristics describedfor such bioEntity. The information about the characteristics ofparticular functional states of a given molecule or complex is encodedas separate instances of classes of bioEntity, as will be described indetail in later sections. Different behaviors of each bioEntity are thenexplicitly defined through the mechanisms represented by thebioProcesses in which bioReactants that make reference to such bioEntityparticipate. In other words, it can also be said that bioProcessesrepresent the interactions of a bioPool of such bioEntity with bioPoolsof other bioEntities, as defined visually through their connectedbioReactants or bioProducts. Furthermore, in the present invention, asingle molecule can be described in more detail by and ordered andconnected set of instances of more elemental bioEntities, referred to asbioEntity-components, which represent molecular functional componentssuch as subunits, domains, motifs, active sites, regulatory sites andmutation sites. The additional levels of detail are implemented in thisinvention through the encapsulation of subworkspaces. In a similar way,sets of simple molecules can be components of other bioEntitiesrepresenting a complex, or of a heter-mol-complex. Since unlimitedlevels of encapsulation are allowed, it is possible to start dealingwith a topic with a very general visual overview, and then successively“clicking” into objects of interest, to show the next level of detail.

As will be described in the following sections, in the system of thisinvention, the methods used to process the application-specificknowledge are separated from the application-specific knowledge itself.The domain-specific but application-independent knowledge is encoded inat least four different forms, characterized by: a) the selection,combination and specific connections of the simple knowledge structuresthat contain the variables and parameters that quantitatively definethis system, within the subworkspace of a prebuilt composite bioObject;b) the selection and design of those simple structures and theirinteractions as components of the composite structures, which providefor the resulting transparently interconnected architecture underlyingthis system; c) the selection and definition of the specific attributesof each of those types of structures, which describe and characterizethe potential behavior of those structures; and d) the methods in theform of procedures, rules, formulas, functions and relations thattogether provide for the monitoring, control and execution of thesystem. On the other hand, the application-specific knowledge isincorporated in at least two different ways: a) the selection,combination in different ways and connections of those prebuiltcomposite bioObjects and predefined structures; and b) the configurationof the values of the predefined attributes of those selected structures.

Operating Facilities for Developing, Modeling, Navigating, Queering, andSimulating the Virtual Models

The following descriptions of objects, tasks, procedures, and thecomplex processing that follows only highlights some features, and isnot meant to substitute for the more detailed descriptions shown by thepseudo-code listings provided as Tables at the end, as referred towithin the text when appropriate.

Developer Mode: Definition of the Building Blocks

Domain-menus

The Developer Mode can be restricted to only those users withdevelopment rights. FIG. 9 shows the domain-menus associated with thismode in this invention, which are shown here in an expanded way tofacilitate the discussion of the organization of the definitions ofobject classes and methods. Selecting the “Help & Mode Menus” head (901)pulls down a set of options, each causing upon selection specificactions, including displaying named workspaces or subworkspaces of namedobjects, such as panels, palettes or libraries, or generating otherwalking menus for the window from which it is selected. SelectingDeveloper Mode (902) displays the additional menu heads: “ObjectDefinitions” (903) with pull down options pointing to major groups ofobject classes, “Variable Structures” (909), “Rules Proc's & Relat's”(913), and “Formulas & Functions” (916). Domain-menus include walkingmenus, and whenever an option has additional suboptions then a newpull-down menu is created and displayed in the next adjacent menu slot.For example, selecting “bioEntities” (904) displays the pull-down menuheaded by “bioEntities” (905), which options refer to differentsubclasses of the class bioEntity, and further selecting“MoleculComponents” (906) displays the one headed by “MoleculComponents”(907), and further selecting “Protein Motifs” (908) displays a workspacethat contains the definitions of the class protein-motif and all itssubclasses. In a similar way, selecting “Variable Structures” (909) andfurther “Variables” (910) displays the menu headed “Variables” (911),and further selecting “Velocity pVariables” (912) displays the workspaceshown in FIG. 11 containing the definitions of the class velocity-pVarand its various layers of subclasses. In other cases options bringdirectly to a workspace, such as for “Rules Proc's & Relat's”->“GeneralQuery Proc's” (914), which directly displays the workspace(915) that contains the definitions of some of the procedures needed forthe processing of General Queries.

General Groups and High-Level Classes

The classification and definitions of the object classes is nowdescribed. Table 1 shows the different classes of objects and groups oftools and methods comprised in this invention, which are all knowledgestructures implemented as objects. Those tools and methods arepreferably organized into major groups, each comprising several objectclasses, which may each further comprise several levels of more specificsubclasses, to be discussed in more detail in the following sections.The class bioTool (Table 21), a subclass of the class object definedwithin the Shell, is defined to include a variety of auxiliary iconicstructures used in this invention, and has no additional attributes.Each top class of those groups is a subclass of one of the genericclasses of objects defined within the Shell, from which they inherit aset of attributes and capabilities. Several of those capabilities may beproprietary technology specific for that Shell. For further details, thereader is referred to the G2 Reference Manual Version 3.0 or Version 4.0and other documentation produced by Gensym Corp., which are hereincluded by reference. In this filing, only those Shell-definedattributes that are necessary to describe this invention will beconsidered, and these attributes or their equivalents may be common toother development environments. Other attributes and capabilities notmentioned here may, however, facilitate the development tasks andimprove the performance of this invention. In the following discussion,attention will be focused mainly on those attributes incrementallydefined for each subclass.

There are several other basic classes defined within the Shell that thesystem of this invention uses without relevant modifications. One ofthose are workspaces, which are items used to hold and display otheritems, and which attributes include names, user restrictions, margin,border, background, and module assignment. Workspaces can be independenthigher-level workspaces, or subworkspaces subordinated to objects.Subworkspaces may also have the capability of being activatable, if sodefined in their superior object, which means that the objects upon themare only active and accessible to the inference engine and the simulatorwhen such subworkspace is activated. Other capabilities of the Shell,such as flashing of the icons, changing colors, or rotation of specificpatterns can be used to animate a simulation and to indicate relevantevents, such as showing the bioObjects that are activated, or whichvariables' values are out of range, and many other applications.

The object class definitions listed in the Tables include only thoseattributes which provide new and relevant information, such as: a) Classname, b) Superior class, and c) and Attributes specific to class. Otherattributes are mentioned only when relevant or modified, following thefollowing rules:

“Capabilities and restrictions” describes which additional capabilitiesor restrictions apply to all the instances of all the subclasses of thatclass The Shell-defined capabilities used in the current implementationof this invention comprise: “activatable-subworkspace”, for the classesbioReservoir, bioProcess, time-compartment, and hold-bin; and“subworkspace-connection-post” for the class model-box.

“Class restrictions” defines which menu options and other non-menuchoices are available or disallowed, or which attributes are visible inthe table, in each particular user mode for all the instances of all thesubclasses of the class for which they are defined. The Shell-definednon-menu choices include: “move-object”, . . . The Shell-defined menuchoices include: “table”, “name”, “transfer”, “create-subworkspace”,“change-size”, “describe”, “disable”, “delete”, “rotate-reflect”, . . .

“Inherited attributes” are usually not be listed in the Tables, sincethey can be deduced by adding up the listings of “attributes specific toclass” of each of the superior classes. On occasions, however, inheritedattributes may be listed for the purpose of summarizing dispersedefinitions. When an attribute is defined in more than oneobject-definition, the most proximal (or lower-level) definitionoverrides the others.

“Menu option” refer to whether the name of the object class appears asan option within the new-object selection from the menu of workspaces,or with other words, whether the class can have instances (if the valueof this attribute is “a final menu choice”) or whether the class is onlya superior to other subclasses (if the value of this attribute is “not afinal menu choice”). This attribute will be only listed for thosehigh-level classes that are “not a final menu choice”, and it isotherwise assumed that the class is “a final menu choice”

“Stubs” define each of the connection stubs for that class and theirposition on the class' icon, and optionally the direction of flow and/orthe name of the connection port. The stubs can be inherited fromsuperior classes, in which case the value of this attribute will beinherited, or the class may have no defined connections and the value isnone, and in either case this attribute may not be listed. If it is notlisted and the superior class has defined stubs, then it is assumed thatthe stubs are inherited, and if the superior class has no defined stubs,then it is assumed that the value of this attribute is none.

“Icon description” defines the iconic appearance of the iconcharacteristic of all the instances of the class. The icon can beinherited or be specific for that class, and usually contain differentlycolored layers, or color-regions, which color may change dynamically atrun-time, to visualize the state of the objects, such as selected, or oftheir subworkspaces, such as activated. The detailed description of theicons is not included in the Appendix to save space, and in mostoccasions it will be simply referred to as the <name of theclass>-pattern, followed by its dimensions (to have a reference for thestubs), and by the color-regions, which may be referred to by rulesand/or procedures.

In addition to an attribute table and sometimes a subworkspace, eachiconic object has an associated menu with a set of options. Some ofthose menu options, and options defined within the Shell, performstandard tasks common to all objects, such as: change-size, clone,color, delete, describe, disable, go-to-subworkspace, move, and name.Many of those tasks are self-explanatory and will not be furtherdescribed. Other novel and domain-specific menu options are defined inthis invention as user-menu-choices to provide interactive access by theuser to automatic or semi-automatic tasks related to the configurationof the knowledge structures and to requests diverse forms of processingand display of such knowledge. User-menu-choices are defined for thespecific class named in its applicable class attribute, as in theexample shown in Table 25. They appear as options in the menu associatedwith the icon of every instance of every subclass of said applicableclass, unless a class restriction is defined for any of those classes toexclude that option from the menu in any particular user mode. Selectingany particular options triggers one or more actions. All thosedomain-specific tasks provide a highly interactive user-interface andare important teachings of this invention. Those options and the methodsinvoked upon their selection will be discussed in later sections. Herewe will focus on the definitions of all object classes and on thedescription of their attributes.

Variable Structures:

Variables and Parameters:

In the present invention, the quantitative attributes of object classesmay be defined as simple attributes, or as instances of subclasses ofparameters or variables. The values of simple attributes can be modifiedthrough rules, procedures, or other actions of the inference engine. Thevalues for the variable and parameters may be provided from differentsources. The Shell's simulator is used in the current implementation tocompute the simulated values of variables and parameters that areintegral parts of the bioReservoirs and bioProcesses, as describedlater, including state variables. Those values are preferentiallyprovided by generic simulation formulas, although modelers may alsoprovide specific simulation formulas for specific variables. Users canalso input values for the simulator through the input-panels describedbelow, and the program can also update values based on values receivedfrom other sources, so that values from different sources areintegrated. To standardize the units used during a simulation, theabsolute values are preferentially entered in Molar, M/sec, moles/liter,or seconds, as pertinent.

There are large number of subclasses of parameters and variablesinvolved in this system., as defined in Tables 2 through 15. Only a fewof them are used as independent parameters or variables represented bytheir icon, and usually they have auxiliary functions, such as the x-posand y-pos (Table 3) used to aid in the graphic drawing of pathways on aworkspace. In this invention, most parameters and variables areimplemented as attributes of the various classes of bioObjects, or otherobjects such as model-blocks (FIG. 19, Table 22) or inference blocks(Table 23), as well as attributes of other variables. Aside from thehigh-level classes, most of the other subclasses do not have additionalspecific attributes, but many have distinctive default settings, asspecified in their listed definitions. The separated subclasses allow toattach specific methods to each class, either in the form of formulas,or by referring to all members of the class in rules, procedures orother actions. Since it would be tedious and repetitious to discuss eachsubclass of parameter and variable that are referred to in the system ofthis invention, listed definitions of other objects, their definitionsare instead listed in lumped groups by similarities, and only a few thatare representative or important to the understanding of the operation ofthe overall system will be discussed in the relevant section.

In the currently preferred embodiment, domain-specific variables andparameters are subclasses of various subclasses of the Shell's classparameter, such as float-parameter, integer-parameter orsymbolic-parameter, text-parameter or truth-parameter. Those thatrepresent parameters in this domain are grouped under the domainsubclasses int-par (Table 3) or float-par (Tables 4-8), depending ontheir value types. Those that represent variables in this domain aregrouped under the domain subclass float-pvar (Tables 9-12), which aresubclasses of float-parameter. The reason for these discrepancies isthat In the Shell's classes “parameter” and “variable” do not fullycorrespond to the common concepts of variables and parameters and aresimply two different data structures with different constraints andcapabilities. This invention also defines a set of subclasses offloat-var (Tables 13-15), a subclass of the Shell's classfloat-variable, as an alternative for domain attributes such asConcentration, Density and Velocity (which by default are represented bypVars, as discussed in more detail in the next paragraph) or parameterssuch as a variety of kinetic constants (which by default are representedby simple float attributes).

The Shell's “variables” have capabilities important for theimplementation of this invention, such as: a) allowing the user to set adesired instance, lets say the concentration or density attribute of abioPool representing an entity the quantity of which is monitored in areactor, to receive a measured value from the external monitoring sensorwhile its simulated value is being simulated in parallel, based on theVirtual Model specifications, and then by using inference rules tomonitor either value or both values, and to compare them to a specifiedthreshold or range or to each other, and to initiate some controlactions to regulate the reactor system monitored by the sensor; and b)allowing the user to define simulation or general formulas specific fora particular instance of a variable by writing the formula directly inthe corresponding slot for the formula in the instance's simulationsubtable. Because the Shell's variables are larger structures thatrequire more memory space, this invention uses by default subclasses ofthe Shell's parameter as attributes of bioObjects. However, alternativebut equivalent subclasses of variables are also provided, allowing theuser to delete the default parameter and replace it with the equivalentvariable, allowing the user to then write any customized specificsimulation (values provided by the simulator) or general (valuesprovided by the inference engine) formula to model that particularvariable. Differences between the Shell's parameters and variablesinclude: a) parameters do not have slots for specific formulas but canreceive values from generic formulas that apply to instances of a class;and b) a variable may have an initial value and two current values, theinferred and the simulated values, while a parameter have only one valuethat can be either inferred or simulated; c) the inferred value of avariable can be set to expire after a time interval and therefore avariable may have no value (it should not expire when the value is usedby the simulator), while a parameter always has a value; c) variablescan backward-chain to seek its values, while parameters cannot; and d)variables cannot be directly referenced by procedures. When using adifferent Shell with parameters and variables with different attributesand capabilities, some modifications may be necessary. Examples ofdefault instances are shown in FIGS. 13 through 17 (and theirdefinitions in the indicated Tables) for variables such as: velocity-var(1301, Table 13), model-block-output-var (1428, Table 14), andmodel-block-var ( 1430, Table 14), and for parameters such as:basal-density-par (1506, Table 7),scaling-density-par (1508, Table 6),density-entry-pvar (1510, Table 9), scaled-entry-pvar (1512, Table 9),input-rate-pvar (1514, Table 11), density-pvar (1518, Table 10),basal-conc-par (1522, Table 7), conc-pvar (1524, Table 10),contribution-pvar (1615, Table 10), consum-rate-pvar (1617, Table 11),binding-rate-pvar (1706, Table 11), time-delay-par (1711, Table 8),ph-par (1713, Table 5), ph-factor-par (1715, Table 5), andproduc-rate-pvar (1723, Table 11).

The details of a variable are here discussed in reference to FIG. 10,where the attribute table (1001) of velocity-var shows the attributeslots provided to enter specific information to define and control eachparticular instance, such as the methods of inference allowed (1002);its name (1003); data type allowed (1004); optional initial value(1005); last recorded value (1006); the number of data points or thetime period for keeping the values of the most recent history of thatvariable, together with the time stamps at which those values werecollected (1007); the period of time for which each value is valid(1008); the formula slot where the user may optionally write a specificformula for the inferred value of that particular instance (1009);details about its optional simulated value (1010), which may include anadditional simulation subtable (1011), which contains slots that allowthe user to optionally control the simulation of that particularinstance, such as the time increment for update (1012), a specificsimulation formula (1013), and the number of data points or the timeperiod of values to be stored (1014); the main table also provides forthe initial value for simulation (1015); whether its value is providedby the inference engine, any simulator or external interfaced sources,such as sensors or databases( 1016), and the default update interval(1017).

To add a variable or parameter of the desired class as an attribute of abioObject, the modeler can select the “add subtable” from the menu thatappears when clicking on the slot of the value that attribute, and thennavigate through successive menus to follow the hierarchy of subclassesof variable or parameter, in this case of float-variable, until thedesired subclass can be selected, which results in the creation of aninstance of that subclass that gives the value to the attribute fromwhich slot it was requested. To replace an existing variable orparameter for another, the existing one is first deleted, and then thesequence above is followed. To define the specific simulation formulathe same process has to be followed. Some examples of such attributescomprise: Another example of why and how specific instances of thedefault parameters are to be substituted when needed for the largervariables is discussed here. The Velocity attribute (1705) of aninstance (1701) of a subclass of bioEngine is an instance (1701) of asubclass of rate-pvar, binding-rate-pvar, which value is simulatedaccording to a generic-simulation-formula that refers to such subclass(example in Table 83) and represents a mathematical model for allreactions of such type. The Velocity attribute is allowed moreflexibility in this invention because there are not only many types ofprocesses, depending on the participants in each case, but there arealso many opinions about what is the most fitting equation to computethe Velocity of each type. In addition, there are two types ofsimulation provided by the system of this invention, as discussed underthe Simulation Mode heading. One is semi-quantitative, using scaled(dimensionless) variables, and the other uses variables with absolutevalues. The currently preferred embodiment of this invention is definedby default with a matching set of scaled variables, each with itsassociated simulation formula. For the Velocity attribute, depending onthe bioEngine subclass, different subclasses of rate-pvar (Table 11) areused, such as: catalytic-rate-pvar, binding-rate-pvar,dissociation-rate-pvar, modification-rate-pvar, or transfer-rate-pvar,with such scaled-values based formulas. However, the modeler cansubstitute those with an appropriate instance of an alternative set ofmore specific subclasses of velocity-pvar (Table 12), such as thoseshown in FIG. 11 with more specific absolute value based formulas. Eachsubclass of velocity-pvar (1101), such as: enzyme-velocity (1102),receptor-velocity (1103), complex-formation-velocity (1104),complex-dissoc-velocity (1105), ion-transport-velocity (1106),conform-change-velocity (1107), and translocation-velocity,(1108), hasmore specific subclasses, and each of those subclasses has itsassociated more specific absolute value based simulation formula. Thenomenclature used for naming each subclass indicates all theparticipating components and the reaction type. For example,1E.2S.1.IORD.velocity is meant for a bioEngine.1E.2S.1I, which meansthat its icon has at the top four specific stubs connected to oneenzyme.r, two substrate.r and one inhibitor.r, and the formula for thatinstance reflects the fact that the reaction happens in an orderedfashion, that is substrate1.r binds before substrate2.r, and theinhibitor is a competitive inhibitor of the first substrate. Thesubclasses of velocity-pvar, and their associated simulation formulas,represent only the more typical cases, but they are only a fraction ofall possible cases that user may need to represent. Therefore, anotheralternative is provided for the modeler to write the simulation formulathat most appropriately fits the system to be modeled, substituting withan instance of the class velocity-var described above.

The system of this invention utilizes the history keeping capability forthe values of relevant parameters and variables, as specified in theirlisted definitions, to graph the time-line or to reason about thosehistoric values. The user can decide to display those values in chartsor other display forms. The historic values, as well as their maximum,minimum, average values, or rates of change over time can be not only bedisplayed, but also used by the user in different ways, such as storingthem in external files or databases, allowing the values to be furtheranalyzed.

Arrays and Lists

Arrays and lists are structures that hold a number of items or values inan ordered way. The subclasses of arrays (Tables 16 and 17) and lists(Tables 18-20) have all the characteristics of their parent classes, asdefined in the Shell, and they may have additional attributes within thesystem of this invention, as specified in their definitions. Arrays areindexed, and therefore each of its elements can be directly referred toby referring to its index, while lists may be indexed or not. The lengthof arrays has to be predetermined, before additional values are added,while the length of lists increase automatically, as more elements areadded. However, the current implementation of this invention uses arraysto permanently store the transient values of its elements by setting theinitial-values attribute of an array equal to the desired values to bestored, separated by commas, which may be the current values of theelements of that particular array at any point in time, or the elementsof an auxiliary list, as described in the section describing the methodsfor queries.

One of the classes of arrays used in the current invention isquery-array (Table 16), a subclass of symbol-array, which instances arecreated by the query initialization procedures. For example, one of theuses of a set of query arrays is for storage in each of all theinstances of each class of molecular components in the Virtual Model(Table 16), as described later. The instances of references-array (Table17), a subclass of text-array, refer to sets of instances of the classreference-block (Table 34) and may be attributes of instances ofbioEntities, bioReservoirs or bioProcesses, or bioModels, being used asdescribed below. Furthermore, instances of the Shell's class float-arraycan be used to store all the values of a desired parameter or variableduring a monitoring session or a simulation run, which can then bestored to a file or passed to another external program or device forfurther analysis or processing.

Bioitem-list (Table 20) is a subclass of the Shell's class item-listwith no additional attributes. The different subclasses of bioitem-list(Table 20) are restricted to instances of particular classes of objects,such as experiment-selections, bioReservoirs, and bioProcesses. Thisinvention uses lists in various ways, including: a) as transientauxiliary structures to process information at run-time, not visible tothe users, such as instances of query-list (Table 18), a subclass ofsymbol-list, are used as auxiliary structures in the creation ofquery-arrays, and instances of scroll-text-list (Table 19), a subclassof text-list, are used as auxiliary structures in the creation ofscroll-areas; and b) as auxiliary structures with their icons upon aworkspace, which in addition to be used to process information atrun-time they are available to the user for inspection, such as thoseshown in FIGS. 31 through 35 listing upstream and downstreambioReservoirs and bioProcesses, in reference to the bioObjects fromwhich they where requested. Clicking on those icons by the user causesthe display of the elements of the list, providing direct access to theobjects listed and to the attribute table of the objects listed.

BioTools

Class Model-block

The class model-block (Table 22), a subclass of the class bioTool, mayhave as many subclasses as needed to represent the differentmathematical models needed by the domain modeler, and somerepresentative subclasses are shown in FIG. 19 as examples. Someexamples of generic simulation formulas used to compute the value of theoutputs for those subclasses are shown in Table 87. Also included is ageneric-model-block, to be further defined by the modeler, which is aplaceholder for new parameters and/or variables to be added, and forspecific general or simulated formulas for those newly added variables.The additional attributes for the class model-block includes Output. 1and each subclass have additional specific attributes that are simpleattributes, parameters or variables, and which vary in number and type(Table 22). A model-block is an iconic object, preferentially used uponthe subworkspace of a model-box, which encapsulates the components of amathematical model, as defined by its attributes, where the value of oneor more of those attributes, the outputs, are dependent on the values ofinputs, which may be constant or may changed at run time. The inputs maybe have any type of origins, including: a) one or more other attributesof the model-block; b) one or more attributes of other objects in theVirtual Model; c) one or more values originating from any externalsource interfaced with the system, such as external sensors, databases,or external simulators; d) any auxiliary independent constant,parameter, or variable; e) any timer or meter; or f) any combination ofthe above.

As shown in FIG. 12, clicking on an instance of model-block (1222)displays its menu (1223). The “disable” option (1224) is used when a setof alternative model-blocks is configured for a given bioPool to disablethose not currently in use. The “table” option (1225) displays the tableof attributes (1226) and provides access to its variables. Two classesof variables defined to be used as attributed of model-blocks:model-block-var and model-block-output-var (Table 12) differ in thedefault settings: only the former has by default a simulation subtableand only the latter keeps history of its value, while both have aninitial value and indefinite validity interval, so that they always havea value, and therefore can be used by the simulator. Clicking on theslot (1227) of the attribute Output.1 displays its subtable, theattribute table of an instance of model-block-output-var (1228).Although the predefined model blocks classes have associated genericformulas to compute the value of their output.1, the modeler may want tooverride it by requesting, by clicking on the slot of its simulationdetails attribute, the addition of a simulation subtable. The subtableof the attribute Input.1 (1229) shows the table of an instance ofmodel-block-var (1230), and clicking on the slot of the attributeSimulation-details (1231) displays its simulation subtable (1232) withadditional attributes, among them one (1233) to hold the simulationformula to be written by the modeler. The particular subclass selectedin this example, a proportional.f, is defined with two additionalattributes given by simple float attributes with default values of 1.0for Gain (1234) and 0.0 for Bias (1235), which represent what theirnames indicate.

Class Inference-block

The class inference-block (Table 23), a subclass of the class bioTool,may have as many subclasses as needed to represent the differentinference models needed by the domain modeler, and some representativesubclasses are shown (Table 23) as examples. Some examples of genericsimulation formulas used to compute the value of the outputs for thosesubclasses are shown in Table 88. The additional attributes for theclass inference-block includes Outcome, given by an outcome-par, andeach subclass have additional specific attributes that are simpleattributes, parameters or variables, and which vary in number and type(Table 23). An inference-block is an object, preferentially used as anattribute of bioObjects, such as time-compartments, which represents aninference model, as defined by the methods providing the value of itsOutcome, which is dependent on the values of some inputs. The inputs maybe have any type of origins, including: a) one or more other attributesof the inference-block;; b) one or more attributes of other objects inthe Virtual Model; c) one or more values originating from any externalsource interfaced with the system, such as external sensors, databases,or external simulators; d) any auxiliary independent constant,parameter, or variable; e) any timer or meter; or f) any combination ofthe above.

Class Button

The class button (Table 24) is a subclass of bioTool, which additionalattributes include Toggle-state. A subclass of button is action-button(Table 24), which additional attribute, action-proc-name, holds the nameof the specific procedure invoked when that button is selected by theuser. Clicking an action-button triggers its “select” option (Table 25),which invokes the button-handler-callback, which invokes the proceduredefined as attribute of each subclass, such as the one example shown forhide-sup-ws-callback (Table 26) for a HIDE button. Action-buttons play asupportive role in this invention by controlling the display, and insome cases the activation, of workspaces, allowing the interactivenavigation through the entire Virtual Model. Other subclasses of button,named tracers, initiate important interactive tasks to create anddisplay pathways, lists, or graphs from a point of view within theVirtual Model relative to the bioReservoir or bioProcess from which theyare selected.

The class change-mode-button (Table 27) is a subclass of action-buttonwith the additional attribute Mode, which upon selection starts thechange-mode-callback (Table 27). A set of these buttons on a panel, withthe Mode and Label attributes of each button of the set equal to each ofthe possible values of the user-mode attribute of the window, allows theuser to interactively change from one user mode to another, for theparticular window displaying the panel. The optional behaviors of manytypes of objects in this system are user mode specific, as definedwithin the Class-restrictions attribute of the object-definitions of thecorresponding classes, such as the actions invoked when selecting theiricons (Tables 20, 24, 28, 30, 32, 34, 47, 52, 53, 54, 65, 66), theoptions that appear on their menus, or the visible attributes.

The following classes are subclasses of the class button with noadditional attributes, but have subclasses with specific methodsassociated with them: a) the class path-tracer's (Table 28) “show”option starts the path-tracer-handler-proc (Table 29), which calls theconfigure-tracer-proc (Table 29) and one of three optional procedures,depending on the class of the path-tracer, as described in latersections related to bioProcesses, Navigation Panel, Simulation Panel,and Experiment Panel, where they play a support role by controlling thedynamic creation and display at run-time of interactive pathways ofeither bioReservoirs or bioProcesses or both.; b) the classlists-tracer's (Table 30) “show” option starts thelist-tracer-handler-proc (Table 31), which calls theconfigure-tracer-proc (Table 29) and one of three optional proceduresdepending on the class of the lists-tracer, as described in latersections related to bioReservoirs and bioProcesses, where they play asupport role by controlling the dynamic creation and display at run-timeof lists of either bioReservoirs or bioProcesses that are eitherupstream or downstream of the bioReservoir or bioProcess where thelists-tracer is located; and c) the class graph-tracer's (Table 32)“show-plot” option starts the graph-tracer-handler-proc (Table 33),which calls the configure-graph-tracer-proc and one of three optionalprocedures, depending on the class of the graph-tracer as described inlater sections related to bioReservoirs and bioProcess, where they playa support role by controlling the dynamic creation and display atrun-time of graphs that plot the values over time of key variables orparameters of those bioObjects. The actions performed by theseprocedures are similar, creating first a display with a graph and each adifferent set of predefined complex variables and then establishingrelationships among those variables and the graph.

Group of Operating/Display Tools

The classes query-panel and entry-panel (Table 37) are both subclassesof the class uil-tailored-dialog, as defined in G2 Version 3.0, fromwhich they inherit several attributes used for run-time processing. Thedifferent types of query-panels and entry-panels are designed aspartially built master structures, which are dynamically cloned andcompleted at run-time, upon requests from the user. The dynamicallycreated Entry Panels (FIGS. 32, 33 and 35) are used to interactivelyset-up and start constrained navigations, simulations, and experiments,and for selection of monitoring/control components. The dynamicallycreated Query Panels (FIG. 30) are used to interactively performpredefined complex queries, based on functional modular structure,relative position within the pathways, function (roles as bioReactants),or location in subcellular compartments.

Scroll-areas are structures provided by the Shell. In this invention,Scroll-areas are created dynamically and used extensively (FIGS. 30-35)to list and provide direct access named instances of different types ofbioObjects. For example, a scroll-area is created upon request from anExperiment Panel (FIG. 35) by selecting the BIORESERVOIRS button (3506),listing in a scrollable fashion all named instances of bioReservoirs inthe Virtual Model and providing direct access to them. Thescroll-messages that form the scrollable components of the scroll-area,and which refer to the objects of interest, can be orderedalphabetically or in other ways.

Connections and BioPosts

Connections are used to connect visualObjects (FIGS. 6 and 7) upon aworkspace (601, 602) and are established graphically, by the union ofthe stubs (608, 609) attached to the bioObjects involved (605, 606, 607)or by extending a stub of a bioObject and attaching it directly toanother bioObject, if the latter allows manual connections. Severaldomain-specific connections are subclasses of the Shell's classconnection, and represent different abstract concepts such as inputs,outputs, links, relationships, or information passed between objects.Stubs are handles (716, 718, 720) on the icons of objects that areclicked and dragged to create the connections (608, 609, 717, 719). Thedefinitions of the subclasses of bioEntity, bioPool (610), bioEngine(605), bioReactant (606), bioProduct (607) and bioPost (703, 704, 711,712) prescribe the class of connections that are allowed at each port oftheir icons, as defined in their stubs slot.

Direction of flow may also be specified in such definitions. Stubs arecolor and pattern coded to represent the different types. The stubs areinherited, and those stubs that are not used can be graphically removed.

The definitions of connection subclasses, some of which are shown inTable 38, include the descriptions of the Cross section pattern, thatprovide each with characteristic pattern and color to facilitatevisualization and modeling tasks, and a predefined Stub length. Each ofthose classes is specific for connecting particular combinations ofobjects, as described below (FIGS. 6 and 7). Stubs of different classesor subclasses are not allowed to connect to each other, to prevent themodeler from making erroneous connections. Connections comprise thefollowing major classes:

-   -   the class p-connection represents a bioprocess input to a        bioReservoir, and more specifically a bioProduct's input to a        bioPool, in terms of both unidirectional material flow and data        flow. Several stubs for p-connections are defined at the top        (716) of the class bioPool, which may graphically connected        (717) to the one stub defined at the bottom of each        bioPool-p-post (712). Also several stubs for p-connections are        defined at the bottom (720) of the class BioEngine, which may        graphically connected (609) to the one stub defined at the top        of each bioProduct (607).    -   the class r-connection represents a bioReservoir's input to a        bioProcess through a bioReactant, in terms of both        unidirectional material flow and bi-directional data flow. An        r-connection may connect (719) a biopool-r-post to the bottom of        a bioPool, or may connect (608) a bioReactant to the top of a        BioEngine. Several stubs for r-connections are defined at the        bottom (718) of the class bioPool. In addition, the class        r-connection has many subclasses, which differ in their        characteristic cross section color pattern, and each connects a        different class of bioReactant to a matching stub of the same        subclass defined at the top of a bioEngine. The definition of        each subclass of bioReactant specifies within the stubs        attribute the specific subclass of r-connection, and the        definition of each subclass of bioEngine specifies within the        stubs attribute a set of specific subclasses of r-connections        and their locations. The purpose of this implementation is to        prevent users from making the wrong connections, while directing        the user to make the appropriate connections by matching the        color pattern.    -   the class model-box-connection has three subclasses,        scaled-input-box-connection (721), input-box-connection (722),        and output-box-connection (723), used (FIG. 8) to graphically        connect instances of scaled-input-model-box (811),        input-model-box (816), and output-model-box (817), respectively,        to predefined corresponding ports of a bioPool. The stubs for        these specific connections are defined for each subclass of        model-box, and for each subclass of bioPool at named ports, and        these subclasses are color coded to guide the modeler to match        the color pattern when making the connections;    -   the class link defines the connections between the component        bioEntities (1819, 1821) of other bioEntities (1817),        representing the continuity of an ordered sequence of structural        components;    -   the class icon-wire is a tool used to connect a biorole-post        (703, 707, and 711) to its bioRole-Object. The class graph-link        is a tool used to connect either a bioEngine to various types of        tracers (3105, 3110, 3117, 3426) or a bioPool to various types        of tracers (3421). After the connection is made, these        connections are made invisible by either a rule at run-time or        by a procedure invoked at initialization time.

The class BioPost (Table 39) is a subclass of the Shell's classconnection-post. Connection-posts are like extensions of connectionsthat permit to physically interrupt a graphic connection and continue iton another workspace, but without interrupting the flow. A teaching ofthis invention is the design, uses, and methods associated with thedifferent subclasses of bioPost, each referring to an iconic structure(703 or 711) that may be distantly connected to another bioPost of acomplementary subclass (704 or 712, respectively). BioPosts arecomponents located on the subworkspaces of bioReservoirs andbioProcesses and, since they are located upon different subworkspaces,they are distantly connected by receiving the same name. Thesestructures integrate bioReservoirs and bioProcesses, wherever they arelocated. There are several restrictions built into the system of thisinvention to prevent users from making the wrong connections, or to warnthem that wrong connections have been made, such as when abioReactant-post is given the same name as a bioPost that is not abiopool-r-post, or when a bioproduct-post is given the same name as abioPost that is not a biopool-p-post. The various subclasses of bioPost(Table 39) will be further described below, within the overalldescription of bioReservoirs and bioProcesses.

BioObjects

The class bioObject (bio-object, Table 40) is a subclass of the Shell'sclass object, with various subclasses and various restrictions when indifferent modes, as listed. BioObject comprises all the classes ofknowledge structures used to represent the biochemical systemscharacteristic of this domain. These object classes are characterized bytheir defined attributes, which can be: a) simple attributes of varioustypes, such as text, symbols, integers, floats or truth values; or b)other previously defined objects, including parameters and variables ofany of those types, or lists and arrays of those types of elements. Thevalues for the parameters and variables can be provided by any of avariety of sources, such as the user-inputs, interfaced on-line sensors,or dynamically by the inference engine (for instance, through specificor generic formulas, rules or procedures), or a simulator (for instance,through specific or generic simulation formulas or simulationprocedures), reflecting the changing values of the attributes definedwithin the knowledge structures and in the context selected by the user.

All bioObjects have at least three common attributes: a) Names, aShell-defined attribute that binds one or more unique symbols to anobject; b) Label, a text attribute that allows to identify bioObjectsthat may not have a unique name; and c) Description, an optional textstring for any additional information. While names are required in thecurrent implementation for some bioObjects to be integrated into thepathways, such as bioReservoirs, bioProcesses, and bioPosts, labels arepreferred for identification in other cases, because they require lessmemory than symbols, do not have to be unique, their syntax is lessrestrictive, and offer more attractive options for display.

Among the major bioObject's subclasses, which further subclasses aredescribed in later sections, are:

Class bioNode-Object:(Table 40): inherits all attributes and icon frombioObject and have no specific attributes, and can only have subclasses,not instances. However, there are methods that refer to this class, andtherefore, like with many other classes throughout this system, thedifferentiation between classes may not appear in their definitions butrather on their behavior, through methods that applied to them.

Class bioView-Object:(Table 40): inherits all attributes and icon frombioObject, and can only have subclasses, not instances. A option“details” defined for this class upon selection by the user starts theprocedure go-to-view-proc, which takes among its arguments the instancefrom which it was invoked and the current window and, depending on thevalue of the instance's Toggle-state attribute of hide or show, itcauses the instance's subworkspace to be displayed or hidden, it togglessuch value to the other value, which is an event that fires a rule thatcauses the instance's icon to be configured to its pressed or depressedappearance. New attributes defined for this class comprise:

-   -   References, defined for several subclasses of bioObject, is an        optional text that makes reference to the sources of information        and data used to construct and configure that instance of any        subclass of bioObject for which it is defined. This attribute        may be defined as: a) a simple text attribute, which the user        may consult to perform independent searches, or using this        invention search facilities, such as the Master-Reference-Panel;        or b) a reference-array (Table 17) in combination with the        option “show-references”, which when selected by the user starts        the show-references-of-array-proc (Table 126), which displays        dynamically created copies of the instances of reference-block        (Table 34) referred to by the values of that array.    -   Warnings is an optional simple text attribute, the value of        which is set by the modeler to warn the user about any        abnormalities or data included, such as, for a bioReservoir,        when that particular pool of molecules have not yet been        observed experimentally, but can be assumed to exist by analogy        to similar systems, or when the pool has been observed but the        quantitative data has been assumed. This attribute is used in        conjunction with a design (723, 843) in the icons defined for        all those classes and their subclasses as a separated        color-region, called flag-color, that is changed to yellow to        make the user aware of the existence of warnings, or back to any        appropriate color. Those changes are automatically executed by        procedures invoked during initialization, or at run-time by a        set of rules.    -   Toggle-state is an attribute also defined for objects for which        their icons' appearance change upon selection by the user,        depending on the value of this attribute, which alternatively        switches between show and hide when the user clicks on the        icon.BioEntities

A bioEntity is an iconic knowledge structure that represents anybiochemical entity or their components, at different levels ofstructural complexity. Each bioEntity may have information encoded invarious ways, including: a) information and data stored in its table ofattributes, and b) each bioEntity may have a subworkspace upon which thecomponents that represent its functional modular structure are visuallydefined. As shown in FIG. 30, selecting from a bioEntity icon's (3004)menu (3005) the “details” option (3006) displays its structure (3007),which may have several layers of detail (3008-3022). In the currentimplementation, functional components represent structural componentsthat are relevant for the bioEntity's function and regulation, thatallow the user to visualize the structural composition. The iconiccomposition is also used in the inference for processing of queries thatinvolve the structure, which refer to bioEntities that have certaincomponents in their subworkspace. Each functional component of abioEntity belongs itself to a bioEntity class, either molecule orbioEntity-component or any of its hierarchy of subclasses.

The class bioEntity (Table 42), a subclass of bioObject, has numeroussubclasses, organized in a hierarchical structure with different levels,according to the way a biochemist would classify different molecules, bytaking into consideration their commonalities in chemical composition inthe upper levels of the hierarchy, such as protein, nucleic acid, orlipid, followed by a reference to their function, such as, within theclass protein, active-polypeptide, receptor, or enzyme. Table 41 shows apartial listing of such hierarchy, with some examples of the subclassesat different levels. Additional attributes include References, describedabove.

There are two major subclasses of bioEntity:

The class simple-bioEntity (Table 43) includes all the subclasses withsimple structures that are not further visually described in the currentimplementation, and they do not generally have subworkspaces withadditional components. This class has two subclasses (Table 43),protein-site, and protein-modified-group, each with its additionalsubclasses: Additional attributes include:

-   -   Id is a simple attribute that is used to hold a text to identify        the instance instead of using a unique name;    -   Position is a simple text attribute to indicate the position of        that component within the molecule when applicable, such as the        position of an Aminoacid in the sequence of a protein, and is        usually displayed; and    -   Superior-bioEntity is a simple indexed attribute that holds the        name of the first superior bioEntity in the workspace hierarchy        that has a name, if any, a value that is computed by the program        within the query reasoning and, as explained later, this        mechanism is provided to avoid repetition of structures that are        shared by various instances of the same family or of other        families that share regions of homology.

The class complex-bioEntity (Table 44) includes all those subclassesthat can be further described by their components in theirsubworkspaces. As shown in FIG. 30, selecting from icon's (3004) menu(3005) the “details” option (3006) displays its structure (3007), whichmay have several layers of detail (3008 through 3022). Additional notpreviously described attributes include:

-   -   Master-bioEntity is a simple indexed attribute that may hold the        name of a bioEntity that is displayed when the user selects the        “details” option. This value is set by the program upon cloning        an existing named bioEntity using the “create-local” option, as        described later. BioEntities with no names and which its        Master-bioEntity names another bioEntity, the master bioEntity,        can be considered as only a copy or pointer to the subworkspace,        or Master-details, of the master bioEntity, but it can also hold        additional information in its table of attributes or in its own        subworkspace, or Local-details.    -   The major subclasses of complex-bioEntity, defined to deal with        multiple levels of biochemical structural complexity. include:    -   the class bioEntity-component and its subclasses (Table 44)        represent he lower-level molecular functional components such        as: dna-component and its subclasses, such as dna-domain,        promoter, operator, and so on; protein-component and its        subclasses, such as protein-domain, protein-motif, and so on;        and membrane and its subclasses. The subclasses of this class        may have 4 stubs of the class link used to link different        bioEntity-components, allowing for branching, and those stubs        that are not used can be dragged away. Additional attributes        include: Superior-bioEntity and Position, defined above; and        Size.    -   the class molecule (Table 45) and its successive level of        subclasses such as those of protein (Table 45), nucleic-acid,        and so on, represent the next level of complexity. For example,        ss shown in FIG. 30, a protein may have a set of domains or        motifs, or a combination of both, and it may have in addition        one or more protein-sites, or protein-modified-groups, connected        to the domains and or motifs at approximate locations, with the        more accurate position displayed in the Position attribute. A        protein-domain may also have in its SW a set of smaller domains        or motifs, or a combination of both, and it may have in addition        one or more protein-sites, or protein-modified-groups, including        copies of those connected to the icon of the domain.    -   the class heter-mol-complex and its subclasses, such as        nucleosome or, tf-dna-complex, represent a higher level of        complexity. A heter-mol-complex or a complex-molecule may be        composed of other molecules. For example, a tf-dna-complex may        have a dna or a gene icon in association with one or more icons        of specific transcription-factors. In turn, the structure of a        simple molecule is represented by an ordered set of bioEntities        of the class bioEntity-component in its subworkspace.    -   the class membrane and its subclasses, are used to represent        interactions of several types of cellular membranes with other        molecules;

Additional information about an instance of bioEntity can be stored inits table of attributes, such as the example shown for a defaultinstance of the subclass p.tyr.kinase (Table 45). The inheritedattributes shown are successively added through the hierarchy of itssuperior classes, such as molecule, protein, and enzyme, and include:

-   -   Synonyms is a simple text attribute to list the different names        by which a molecule or complex may be known;    -   In-species is a simple text attribute to list the species or        common name of living organisms in which that molecule or        complex has been found, such as all, human, mouse,        Drosophila, C. elegans, S. cerevisiae, and so on;    -   In-tissues is a simple text attribute to list the tissues in        which that molecule or complex has been found.    -   InCells is a simple text attribute to list the cell types in        which that molecule or complex has been found.    -   InOrganelles is a simple text attribute to list the organelles        within a cell in which that molecule or complex has been found,        and it may take values such as plasma-membrane, cytosol,        nucleus, and so on.    -   Cas-number is a simple text attribute to indicate the CAS number        assigned to that molecule, which is indexed to allow for faster        searches and has a default value to indicate the preferred        format;    -   Mol-weight is a simple integer attribute to indicate the        molecular weight of a single molecule or complex, preferably        expressed in Daltons;    -   Isoelectric-point is a simple float attribute to indicate the        isoelectric point of the molecule or complex;    -   Sequence is a simple text attribute to contain information about        the sequence of a molecule, if relevant;    -   Substrates-info is a simple text attribute to contain        information about the known specific substrates or groups        targeted by the enzyme;    -   Inhibitors-info is a simple text attribute to contain        information about the known specific inhibitors of the enzyme;    -   Ligands-info is a simple text attribute to contain optional        information about any other ligand that may bind to the enzyme;

The class bioEntity-notes, (Table 46), a subclass of bioTool, compriseauxiliary structures located the subworkspace of a bioEntity, that serveas iconic containers for different types of specific information aboutthe bioEntity, which can be displayed by selecting the “details” option.

BioReservoirs

Class BioReservoir

As shown in FIGS. 8 and 12, a bioReservoir (801, 1201) is an iconicobject that represents an imaginary container of a population of similarmolecules or molecular complexes, represented by a bioPool (805, 1301).A bioReservoir has several operational functions and encapsulatesseveral forms of knowledge (FIGS. 8, 12, 13). A bioReservoir's menu(802, 1202) provides access to a variety of tasks to be discussed insections below. Here we will define some of the components involved. The“table” option (1203) displays its table of attributes (1204), whichholds values set by the modeler that, in addition to provide usefulquantitative or qualitative information to the user, may be used by theprogram to set the initial conditions before a simulation is run. Thevalues of some of the attributes of a bioReservoir characterize thesystem and are stored as part of the permanent database. The values ofother parameters and variables (1305-1324) pertaining to a bioReservoirthat are computed when a simulation is run, but which do not usuallyrequire to be set by the modeler, are hidden for convenience asattributes of the bioPool encapsulated in each bioReservoir, asdescribed below, but they could as well be implemented as attributes ofthe bioReservoir.

The class bioReservoir (Table 47) is a subclass of bioView-Object andits subclasses (Tables 47 and 48) include: bound-mol-reservoir (801),sol-mol-reservoir (1201), cell-reservoir, exp-cell-reservoir,genet-mol-Reservoir, some with further subclasses. All instances of allsubclasses of bioReservoir have an activatable-subworkspace, which meansthat any object upon such subworkspace are not recognized by theinference engine or the simulator unless the subworkspace is activated,and therefore any of the tasks associated with their icons are notfunctional when inactivated. When the application is started, all thosesubworkspaces are deactivated, and in the current implementation of thisinvention they are activated when the general initialization proceduresare invoked, as described below. In FIG. 12 is shown a table ofattributes (1204) of an instance not yet configured, shown here with itsdefault values. The unlikely default value of 9.9e-99 given to some ofthose attributes, which provides a) a signal for the user that anadequate value has not been entered yet by the modeler, and b) abranching criteria for the inference engine. Attributes newly definedfor this class and its subclasses not previously described include:

-   -   Compartment (1205) is an simple attribute optionally set by the        modeler to represent the physical boundaries of the encapsulated        bioPool;    -   Status (1206) is a symbolic attribute, which value is set and        used at run time by the simulation and other procedures, as an        aid in the activation of pathways and in the creation of        interactive pathway displays. It can take any of the values        specified in the definition table and it is not visible to the        modeler or other users.    -   Ref-bioentity (1207) is an optional attribute optionally set by        the modeler to point to the bioEntity instance that describes        the structure of a unit representative of those populating that        bioReservoir. This value is used by the program when the user        selects the “bioEntity” option from the menus of either the        bioReservoir itself or any of the bioReactants and bioProducts        distantly connected to its bioPool, and that option appears on        those menus only when the value of this attribute is not the        default value none;    -   Master-bioreservoir (1208) is set only by the program when        copies of named bioReservoirs are made, such as those used in        the creation of interactive pathway displays, and is used by the        program to display the subworkspace of the bioReservoir referred        to by the value of this attribute, when the “master-details”        option is selected by the user. This attribute is not visible to        the modeler or other users.    -   Decay-rate-factor (1209) is a parameter, which value may be        entered by the modeler or can be modified at run time by rules        or procedures. Its default value is 2.0e-4, a value small enough        not to cause dramatic changes, but in line with some        experimental observations in the domain of this invention, but        it should preferably be modified by the modeler to better        reflect individual cases;    -   If-scaling-amount (1210) is a simple attribute set by the        modeler to indicate to the program the value to be used to        interconvert between the absolute-valued and the scaled-valued        variables or parameters of bioPools and their connected        bioReactants. The complex methods used for these conversions        differ, depending on the classes of bioPools and bioReactants        involved, as discussed in more detail under the Simulation Mode        heading. Its default value of 100 is used if not modified by the        modeler, if the value of the if-scaling-bioreservoir attribute        is none;    -   If-scaling-bioreservoir (1211) is a simple attribute, which        value may optionally be set by the modeler to indicate to the        program that the value of the if-scaling-amount should be taken        from the bioReservoir named by this attribute. This value is        only required or used when the value of the if-scaling-amount        attribute is the default, otherwise, the later value is used and        this attribute is ignored. This and the previous attribute are        not visible in General Mode;    -   Scaled-basal-amount (1212) is a float simple attribute set be        the modeler that represents the scaled value of the amount of        units in the encapsulated bioPool under normal or basal        conditions, equivalent to a fraction of the maximum amount that        this bioPool can reach under optimal physiological conditions.        Since in many occasions in the domain of this invention neither        the basal nor the maximum amounts can be measured or known with        certainty, this value represents in such occasions the best        estimated guess, and it is an important semi-quantitative        knowledge component. The default is the unlikely value of        9.9e-99.    -   Physiol-abundance (1213) is a symbolic attribute, which value is        set by the modeler to indicate the physiological level of        abundance of the entity in the compartment represented by that        bioReservoir. It is a symbolic replacement of the previous        attribute when the 9.9e-99 has not been modified by the modeler.        The values allowed for this attribute in this invention are:        highest, abundant, steady-state, low-induced or only induced,        which currently correspond to the scaled values of 1.0, 0.9,        0.5, 0.1, and 1.0e-9, respectively. However, this default scale        can be changed to different values, and additional symbols and        values can be added to the scale. As and alternative, fuzzy-sets        can be defined for the values of this attribute, and fuzzy-logic        can then be applied to those values. The reasoning for using the        values of either the previous or this attribute, in conjunction        with one or more of the following attributes, are discussed in        more detail under the Simulation Mode heading.    -   Normal-basal-concentration (1214) is a float simple attribute        set be the modeler that represents the physiological average        value of the concentration of the entity represented by a        sol-mol-reservoir;    -   Normal-basal-density (instead of 1214) is a float simple        attribute set be the modeler that represents the average value        of the density of the entity represented by a        bound-mol-reservoir.    -   Physiol-max-concentration (1215) is a float simple attribute set        be the modeler that represents the physiological maximum value        of the concentration of the entity represented by a        sol-mol-reservoir;    -   Physiol-max-density (instead of 1215) is a float simple        attribute set be the modeler that represents the physiological        maximum value of the density of the entity represented by a        bound-mol-reservoir.

Selecting the “details” option (803) displays the subworkspace(1217,804), which contains the components that characterize abioReservoir. The classes of those components that are using in themodeling process are defined below, while other auxiliary structures aredescribed in later sections. The descriptive qualitative, structural,and functional information of a bioEntity is kept in this inventionseparated from the configurable additional quantitative information thatcharacterizes each bioReservoir, allowing the Ref-bioentity (1207) ofseveral bioReservoirs, representing populations of the same type ofentity in different locations or points in time, to point to the samebioEntity to reduce the size of the Virtual Model.

Class BioPool

The class bioPool (Table 49) is a subclass of bionode-object andcomprises several subclasses, such as sol-mol-pool, bound-mol-pool, . .. , including those defined in Tables 50 and 51. A bioPool (805, 1301)is defined with a characteristic icon with two sets of stubs of twoclasses of connections: a set of p-connection stubs at the top of theicon, and a set of r-connection stubs the bottom of the icon. Eachp-connection stub is to be connected to a biopool-p-post (806) and eachr-connection stub is to be connected to a biopool-r-post (818, 823, 828,833) on the subworkspace (804) of the bioReservoir (801), which allow toestablish distant connections to bioProducts (808) and bioReactants(820, 825, 830, 835), respectively, and allow bi-directional flow ofdata and control between them. As shown in FIG. 13, every instance ofbioPool (1301) has an associated menu (1302), and selecting the “table”option (1303) displays its table of attributes (1304). Several of theattributes of a bioPool are variables or parameters (1305-1324), whichinclude a density-related set and a concentration-related set, whichvalues do not have to be set by the modeler (with the exception of thebasal quantities, which are preferably set by the modeler if known butthey are not required, since they can be computed from the set values ofother attributes of the bioReservoir, or their default values), sincethey are inferred or simulated., as described under the Simulation Modeheading. The units of all the parameters and variables of all bioPoolsconnected to the same bioProcess have to be appropriately matched. Newlydefined attributes of bioPool comprise:

-   -   Basal-Density (1305) is given by a basal-density-par (1306). The        subclass sol-mol-pool has additionally a Basal-Concentration        (1321) given by a basal-conc-par (1322). The values of either of        these attributes may be set by the modeler to indicate: a) the        normal physiological steady state density or concentration, or        any other appropriated measured or assumed value, for        physiological molecules or complexes, or b) 0.0 for        pharmacological or other molecules that are added to the system        from an external environment. This value is required for any        bioReservoir that participates in a simulation, and if its        default value has not been overridden by the user with a new        value, the program sequentially pursues other sources of the        Basal-Density value, as determined by a generic        basal-density-procedure that is called during the activation        process of a simulation, only for those bioReservoirs that have        been activated for a simulation;    -   Scaling-Density (1307) is given by a scaling-density-par (1308),        which value is inferred by a procedure invoked at        initialization, as discussed in more detail under the Simulation        Mode heading. This value is used by simulation formulas to        interconvert scaled values and absolute values.    -   Density-Entry (1309) is given by a density-entry-pvar (1310). It        takes the value of a user-input at a time, or different times        intervals, during simulation as defined by the user in an        input-panel, during the simulation set-up process. It has a        default value of 0.0, and a new value may be inferred and set by        a procedure called when the simulation is started, and, after        the new inferred value has been propagated, it reverts back to        the default value of 0.0. This value is an argument to the        Accumulation, where it is summed to other inputs and outputs;    -   Scaled-Entry (1311) is given by a scaled-entry-pvar (1312), and        it is the scaled equivalent of the Density-Entry, with its value        set and used in a way similar to that described above;    -   Input-Rate (1313) is given by a input-rate-pvar (1314), which        value is given by a simulation formula that sums all the        visually defined inputs, including: a) the current values of the        Production-Rate of all the bioProducts connected to the        biopool-p-posts of the bioPool, if any; and b) the input modeled        by means of a model-block encapsulated in any connected        input-model-box (or scaled-input-model-box), if any;    -   Output-Rate (1315) is similarly given by a output-rate-pvar,        which value is given by a simulation formula that sums all the        visually defined outputs, including: a) the current values of        the Consumption-Rate of the consuming bioReactants connected to        the biopool-r-posts of the bioPool, if any; and b) the output        modeled by means of a model-block encapsulated in any connected        output-model-box, if any;    -   Accumulation (1316) is given by an accumulation-pvar, a time        variant and continuous state variable that represents a quantity        in the classical systems dynamics sense, which, given an initial        value, here set to be equal to the basal-amount (or        scaled-basal-amount), as discussed under the Simulation Mode        heading, integrates the input-rate, the output-rate, the input        entered by the user through an input-panel, if any, and the        decay term, which is a function of the current value of the        Concentration or Density as given by the decay-rate-factor of        the bioReservoir (a decay rate constant in sec{circumflex over        ( )}(−1)), which represents a variety of outputs not modeled        visually or through a model-block, including the degradation and        diffusion components). Since at steady-state the overall rate of        output is equal to the overall rate of input, then, by        definition, the Accumulation should approach 0.0 in a closed        system, in the absence of additional external disturbances, such        as user-inputs or inputs modeled by model-blocks.    -   Density (1317) is given by a density-pvar (1318), which value        represents the number of molecules, complexes, or cells per        liter, or any other unit of volume, such as the volume of the        reaction mixture in a reactor. The subclass sol-mol-pool has the        additional attribute Concentration (1317) given by a        scaling-density-par (1318), which value in M (Molar) represents        moles per liter. In the implementation used to illustrate this        invention, simulations operate by default based on the Density        of the bioPools involved. In the case of sol-mol-pool, where the        quantities used by scientists may be most commonly given as        Concentrations, the second set of concentration related        variables is defined to facilitate user-input, but those        quantities are preferably transformed into density-related        variables by the program, using Avogadro's number (6.023e23        molecules per mol), before integration with other quantities.        However, several other types of quantities could be used as        well, with conversions to other units of measure, such as        activity (X-units times Y-unit), amount (X-units), or others        types of densities (such as X-units per Y-unit). The same        concepts and the same type of formulas, rules and procedures,        apply to other-quantities, and a variety of units may also be        allowed for entries from the user or other external sources, by        providing lookup-tables or any other standard methods for        automatically converting any of those units to the desired        target units. Hence, the modeler has the option to design and        define a system totally or partially based on a different        quantity measurement, as long as proper care is taken to        maintain consistency throughout the system. In those cases, the        quantities entered by the modeler in the attribute slots of the        bioReservoir that refer to physiological levels would also have        to reflect those different sets of units.    -   Scaled-Amount (1319) is given by a scaling-density-par (1320),        which value represents an scaled, dimensionless, alternative to        Density, Concentration, or any other absolute-valued quantity.        This attribute is used in the default scaled reasoning, which is        the preferred method when dealing with biological systems, when        absolute quantitative data is incomplete, and much of the data        available is from relative measurements. The Scaled-Amount can        be converted into a Density, and vice versa, by using the value        of the Scaling-Density of the bioPool.        Class BioPool-post

The class bioPool-post (Table 52) is a subclass of bioPost and has twosubclasses: biopool-p-post (712, 806), which is to be connected (717) toan input p-connection at the top of a bioPool's icon, and its name is tobe given to one bioproduct-post (711, 807) to establish a distantconnection; and biopool-r-post (704, 708, 818, 823, 828, 833), which isto be connected to an output r-connection at the bottom of a bioPool'sicon, and its name is to be given to one bioReactant-post (703, 707,819, 824, 829, 834) to establish a distant connection. BioPool-posts arelocated upon the subworkspace of a bioReservoir and connected to abioPool, which function in combination with bioRole-posts is to connectthe bioPool to one or more bioEngines. The additional attributes forthese classes include:

-   -   Id is a simple text attribute used as a unique identifier,        instead of the unique name, in some types of processing, such as        in the alternative simulation procedures described in that        section;    -   Ref-bioprocess is a pointer to the bioProcess instance that        encapsulates the bioProduct or bioReactant to which the        biopool-p-post or biopool-r-post, respectively, are distantly        connected.

The value is interactively set by selecting the “set-refs” option of thebioproduct-post or bioReactant-post to which it is distantly connected;,and it is used by the program for interactive navigation throughbioReservoirs and bioProcesses, as described below.

Class Model-box

As shown in FIG. 12, a model-box is an iconic object (1218, 1236, 1237)located upon the subworkspace (1217) of a bioReservoir (1201) andconnected to its bioPool, which function is to hold and connect theoptional model-blocks (1222) on its subworkspace (1221) to the biopool.The class model-box (Table 53) is a subclass of bioTool and has threesubclasses, each playing a different role as their name indicates:scaled-input-model-box (1218), input-model-box (1236), andoutput-model-box (1237). Model-boxes are created by selecting a menu(1302) option of the closest bioPool, as described below. An instance ofmodel-block is connected to the connection-post (1238), which comes withthe subworkspace of a model-box. The superior connection of suchconnection-post is that defined by the stub of the model-box thatcontains it, and therefore, the model-block (1222) connected to it isdistantly connected to the bioPool to which the model-box (1218) isconnected. The menu options available for all subclasses of model-boxdepend on the user mode. Clicking on a model-box (1218) in any of theuser modes bypasses its menu (1219) and selects the “show-sw” option(1220), which causes its subworkspace (1221) to be displayed.

BioProcesses

Class BioProcess

The class bioProcess (Table 54) is a subclass of bioView-Object, andcomprises the subclass cell-bioProcess. As shown in FIGS. 7, 14 and 15,a bioProcess is an iconic object (701), which subworkspace (702)contains components that visually represent the preconditions(bioReactants, 1408, 1409), the process engine (bioEngine, 1501) and theeffects (bioProducts, 1518) of a process as connected objects withencapsulated variables and parameters that describe the processqualitatively and quantitatively. The subworkspace of bioProcesses isactivatable, allowing to control the availability of its components byactivating or deactivating the subworkspace. In the currentimplementation those subworkspaces are activated with the generalinitialization procedures, as described under the General Mode heading.The many different types of bioProcesses are all instances of that classor its subclass, and differ mainly in the iconic components upon theirsubworkspace. The different types are also visually distinguished bydifferent colors for the type-color region of their icon, which ischanged programmatically to be the same color as the color of thetype-color region of the bioEngine they encapsulate.

A bioProcess has several operational functions, encapsulates severalforms of knowledge (FIGS. 7, 14, 15), and has a menu (1402) thatprovides access to a variety of tasks to be discussed in sections below.Here we will define some of the components involved. The “table” option(1403) displays its table of attributes (1404) that holds variousattributes, some of which have values that are set by the modeler andprovide information for the user, and others are auxiliary attributeshidden from modelers and users, which values are set and used only bythe program at run-time. Most attributes specific for this class havebeen previously described for other classes. Newly described attributesinclude:

-   -   Master-bioprocess (1405) is set by the program when copies of a        named bioProcesses are made, such as those used in the creation        of interactive pathway displays, and is used by the program to        display the subworkspace of the bioProcess referred to by the        value of this attribute, when the “master-details” option        (visible only when the attribute has a non-default value) is        selected by the user. This attribute is not visible to the        modeler or other users.

The “details” option (1406) displays the subworkspace (702, 1407) withall its visual components. In addition to other auxiliary structures tobe discussed below, the main components comprise a single bioEngine(1501), which represents the interactions between the inputs representedby the bioReactants (1408, 1419) where the bioproduct(s) (1518) aregenerated.

-   -   As described below (FIG. 29), a cell-bioprocess may encapsulate        bioReactants and bioProducts that represent pools of cells, in        addition to encapsulating bioReactants and bioProducts that        represent pools of chemicals. So it is possible to have        bioProcesses where molecules interact with molecules, as well as        cell-bioProcesses where molecules (2905) interact with cells        (2904), or cells interact with cells. In addition, there may be        pools of pairs of interacting-cells. Other type of bioProcesses        represent translocation processes between location compartments,        where the bioReactant represents a fraction of a given bioPool        in a given compartment that is removed from that bioPool and        transferred, with a time-lag if so desired, to the target        bioPool that is connected to the bioProduct, and which        represents a different pool the same entity in a different        compartment. Additional types of bioProcesses represent transfer        of cells from a bioPool (2901) representing one state of those        cells to another bioPool (2911) representing a different state        of those cells. Each of these types of bioProcesses encapsulates        the appropriate subclasses of bioEngines. There are many other        types of bioProcesses defined in this invention and, in addition        to those examples already mentioned, some others are discussed        with the modeling approaches below. Many more types of processes        can be represented by composing additional types of bioProcesses        by a modeler skilled in the art.        Class BioEngine

The class bioEngine (Table 56) is a subclass of bionode-object andcomprises a hierarchy of subclasses. A few examples, of whichincremental definitions are shown in Tables 56 through 58, are:amplifier-bioengine, binding-bioengine, lumped-bioengine andcell-bioEngine. Each bioengine's icon (605, 1501) has a number of stubsof different types of r-connections at the top, to be connected (608)only to bioReactants (606), and a number of stubs of p-connections atthe bottom, to be connected (609) only to bioProducts (607). The numberand class of defined specific r-connections specify the differentclasses of bioReactants to be connected, such as enzyme.r, substrate.r,inhibitor.r, receptor.r, agonist.r, antagonist.r or unit.r (FIG. 20).The bioEngines of the class lumped-bioengine, including those with twoor more enzymes, represent lumped models of two or more reactions inseries, and are used to model stretches of pathways the detail of whichis either not desired or not known, and only the rate limiting reactionsare represented.

The major subclasses of bioEngine (Table 55) are arranged according tothe type of reaction or process they represent, indicated by theirnames. The next level of classes usually refers to the type of activityof the members of the class and is usually characterized by the class ofthe variable that defines its Velocity attribute. Further subclasses ofeach of those classes are defined according to the number and type oftheir defined stubs, which determines the number and classes ofconnected bioReactants, and further by color coding the icons to showfurther specialization, such as using different type-color for differenttypes of enzymes, such as protein-kinases, protein phosphatases, and soon. Further differentiation between particular instances can begenerated by selecting as the value of their Velocity attribute aninstance of different subclasses of velocity-pvar. The nomenclature usedfor each subclass refers to the defined bioReactants, such as:

a) bioengine.E1.S2.I1 is an enzyme-bioengine that represents anenzymatic reaction and which icon has at the top four stubs: one for theenzyme.r, two for substrate1.r and substrate2.r, and one for aninhibitor.r;

b) bioengine.R1.L1.An1 is a receptor-bioengine, which icon has at thetop three stubs: one for the receptor.r, one for ligand.r, and one foran antagonist.r;

c) bioengine.M1.Ef1.An1 is a conform-change-bioengine that represents aninduced conformational change process and which icon has at the topthree stubs: one for modifier.r, one for effector.r, and one for anantagonist.r;

d) bioengine.U2 is a complex-formation-bioengine (2011) that representsthe formation of a complex from two previously independent bioEntities(which may themselves be complexes) and which icon has at the top twostubs: one for unit1.r and one for unit2.r;

e) bioengine.C1.M1 is a complex-dissoc-bioengine that represents thedissociation of one complex induced by a mediator into two or moreindependent bioEntities (which may themselves be complexes) and whichicon has at the top two stubs for complex.r and mediator.r;

f) bioengine.ch1.i1.L1 is a channel-bioengine (2007), which icon has atthe top three stubs: one for channel.r, one for ion-Input.r, and one forligand.r; or

g) bioengine.C1.In1 is a translocation-bioengine that represents atranslocation between different compartments and which icon has at thetop two stubs: one for carrier.r and one for input.r.

As shown in FIG. 15, a bioEngine (1501) is located upon the subworkspace(702, 1407) of a bioProcess and represents the action of any process,such as synthesis, modification, complex-formation, translocation,diffusion, degradation, and so on. Selecting the “table” option (1503)from the menu (1502) of a bioEngine displays its table of attributes(1504), in this case with the default values. Attributes not previouslydescribed include:

-   -   Velocity (1505) is an attribute, specific for each subclass,        which value is an instance of any of the subclasses of        rate-pvar, described above, which for the receptor-bioengine        shown is a binding-rate-pvar (1506). The values for this        dependent variable are provided by generic simulation formulas        that model the rate of the interactions of the bioReactants        connected to the bioEngine. Its arguments may be the        Contributions of each of its bioReactants, when using the scaled        set of variables and formulas, or the bioReactant's        kinetic-coefficients and the Densities, Concentrations or other        quantities of the bioPools connected to the bioEngine through        the bioReactants. Its output is an argument for the        Consumption-Rate and Production-Rate of the connected        bioReactants and bioProducts, respectively. Therefore, this        attribute may take as arguments either a set of scaled-valued        variables and/or parameters, in which case this attribute would        be also scaled-valued, or a set of absolute-valued variables        and/or parameters, in which case this attribute would be also        absolute-valued.    -   Rate-constant-sec (1507) is a simple float attribute, which        value may optionally be set by the modeler to provide the        rate-constant in seconds for the overall process. This value is        used, in combination with the Contribution, by the set of        generic simulation formulas that use the scaled set of        variables, which is currently the default mode of operation. The        default value is used if no other value is set by the modeler.    -   Tau-coeff (1508) is by default a simple float attribute, which        value may optionally be set by the modeler to modify the        rate-constant-sec by such factor, allowing for testing the        effects of a modification of such parameter on the simulation of        the system without having to change the value of such parameter        that may have been obtained experimentally. This value is        incorporated by default in the generic formulas provided, and if        not configured by the modeler, multiplying by its default value        of 1.0 has no effect on the system.    -   Bias (1509) is a simple float attribute, which value may        optionally be set by the modeler to modify by a constant amount        the rate-constant-sec, for testing purposes, without having to        change the value of the later attribute. This value is        incorporated by default in the generic formulas provided, and if        not configured by the modeler, adding its default value of 0.0        has no effect on the system.    -   Time-lag (1510) is an optional time-interval attribute that may        be useful for certain instances of bioEngines, which value,        given by a time-delay-par (1511), is optionally set by the        modeler to indicate the period of time by which the forwarding        of the computed output of the Velocity of a bioengine is        delayed. It represents a time delay, equivalent to holding an        amount from a bioPool for the specified period of time, which is        returned after that time has elapsed. An example of its use is        when a bioReactant and a bioProduct of this process are both        connected to the same bioPool, and the forwarding of the output        value of the Velocity is delayed. The value of this attribute        may also be modified at run time, as a result of dynamic events        related to this or other processes, and may be simulated or        inferred by means of modeler-defined formulas, rules, or        procedures;    -   pH (1512) and Temperature (1516) are optional float attributes,        which values are given by a ph-par (1513) and a temperature-par        and which, as their name indicate, represent the environmental        conditions under which the process takes place. The values of        these parameters may vary at run time, as a result of dynamic        events related to this or other processes, and may be simulated        or inferred by means of modeler-defined formulas, rules, or        procedures;    -   pH-deviation-factor (1514) and Temp-deviation-factor (1517) are        optional float attributes, which values are given by a        ph-factor-par (1515) and a temp-factor-par and which are used in        conjunction with pH or Temperature, respectively, and represent        a correction factor that either accelerates or decelerates the        process when the values of either the pH or the temperature        deviates from their defined default values. If used, the values        of these parameters may remain constant or may vary for        different values of the pH or temperature, as defined by a        tabular function similar to a look-up table.        Class BioRole-Object

The class bioRole-Object (Table 59) is a subclass of bioObject, and hastwo subclasses: bioReactant and bioProduct. A bioRole-Object is aniconic object that represents the role that units from a bioPool playsin a bioProcess, either as a different types of bioReactants (FIG. 21),such as: enzyme.r, substrate.r, inhibitor.r, subunit.r, receptor.r,agonist.r, antagonist.r, carrier.r, and so on, each representing thespecific roles of the inputs that different bioReactants provide to thebioengine, or as a bioProduct.

As shown in FIG. 14, a bioReactant (1408, 1419) is connected by an inputr-connection at the top of a bioEngine, and represents the materialcontribution from a biopool to the bioengine to which it is connected.To be operational, the bioReactant-post (703, 707) connected to abioReactant must have the same name as one of the bioPool-r-posts (704,708) connected at the bottom of a bioPool. The two bioReactants shownare representative examples of a pair of two interacting molecules orcomplexes with complementary roles or functions: a receptor and itsligand. Many other combinations of two, three or any other number ofinteracting participants are possible, to represent other types ofprocesses, such as combinations of enzyme and substrate(s), units thatform a complex, and so on. These combinations may also includeantagonists or inhibitors, which may alternatively be represented ascompeting in a separate process, the latter being the preferredalternative in the default implementation using the scaled set ofvariables and simulation formulas.

The class bioReactant (Table 61) comprises a hierarchy of subclasses,such as: amplifier-bioreactant, source-bioreactant, leading-bioreactant,binding-bioreactant, inhibitor-bioreactant, single-bioreactant,cellReactant, cell-receptor, extracell-ligand, and their subclasses. Afew examples of their incremental definitions are shown in Tables 61through 64. There are several attributes common to all subclasses ofbioReactant, while each subclass has one or two specific attributes.Every bioReactant (1408, 1419) has its menu (1409, 1420), and selectingits “table” option (1410, 1421) displays its table of attributes (1411,1422), in this case showing the default values for their attributes. Newand not previously described attributes specific for any of thesubclasses include:

-   -   Stoichiometric-coeff (1412) is a simple float attribute of all        subclasses of bioReactant and bioProduct, which constant value        represents the characteristic stoichiometric coefficient of that        participant in that particular bioProcess. In other words, the        set of the stoichiometric-coeff of all bioReactants and        bioProducts of a particular bioProcess indicates the        relationship between the number of units of each bioProduct        produced per number of units of each bioReactant;    -   Alpha-coeff(1413) is a simple float attribute, which value may        optionally be set by the modeler to modify by a factor the        Contribution, which value is computed by the program. This is of        interest for testing the effects of a global modification of        such variable on the simulation of the system. This value is        incorporated by default in the generic formulas provided, and if        not configured by the modeler, multiplying by its default value        of 1.0 has no effect on the system. Alternatively, the modeler        may delete the alpha-coeff-par and provide instead a simple        float value    -   Contribution (1414) is an attribute of every subclass        bioReactant, which value is given by a contribution-pvar (1415),        which value is dynamically computed while a simulation is        running. The meaning and use of this attribute is a novel        teaching of this invention, designed to meet some of the        challenges posed by the domain of this invention, where both        qualitative and quantitative knowledge is frequently scattered        and incomplete. This attribute represents the Contribution of        each bioReactant to determining the overall rate of the        transformation in that bioProcess, as represented by the        Velocity of its bioEngine. The contribution is a variable that        can take values from 0.00 to 1.00, and represents a        dimensionless scaled concentration (or other equivalent quantity        variable). The scaling of the concentration is done at the        bioReactant level, rather than at the bioPool level, to allow        for additional flexibility. In this way, the absolute        concentration can be scaled differently for each bioEngine,        centering around the specific constant that characterized the        molecular interactions between each specific pair of        bioReactants. The type of constant may be different for        different bioReactants representing the same BioPool depending        on the role played by each bioEntity in a given bioengine, such        as a Km for each substrate, the Ki for an inhibitor, the Ks for        ligands or complex-subunits. The default values for all types of        contribution are equal to: a) 0.5 for normal steady-state        physiological conditions (for that particular compartment); b)        0.0 for bioPools of inducible proteins or non-physiological        molecules; or c)1 for constitutive and repressible proteins. The        user can either directly override a relative value or leave the        default values. A generic formula specific for each of the        bioReactant classes determines how the value of each        contribution class is computed.    -   Consumption-Rate (1416) is an attribute of every subclass of        bioReactant, which value is given by a dependent        consum-rate-pvar (1417), which value is dynamically computed        while a simulation is running, and indicates the rate of        consumption of units of the connected bioPool in such        bioProcess. Its arguments are the bioReactant's        stoichiometric-coeff and the Velocity of the bioEngine, and its        value is an argument for the Output-Rate of the connected        bioPool. For those classes of bioReactants that are not consumed        in a reaction, the value of this attribute remains 0.0. In this        invention, an enzyme.r or an inhibitor.r are preferably not        consumed in the enzyme-processes. However, they may be retained,        by modeling them with a time-delay-var with its specific        formula. Note that the connected bioReservoir may be configured        for the quantity of the bioPool to decay dynamically,        representing their degradation and diffusion components, and it        also may be consumed in other bioProcesses;    -   Effective-binding-sites (1418) is a simple float attribute of        the subclasses of bioReactant that refers to molecules or        complexes that have binding activity, such as all the subclasses        of amplifier-bioreactant and leading-bioreactant, and its value        is set by the modeler to indicate the number of effective        binding sites per unit.

Kinetic-parameters are by default simple float attributes specific forsome subclasses of bioReactants, which values are optionally set by themodeler to indicate the value of the kinetic parameter characteristicfor that particular instance. A set of two attributes is provided foreach of such subclasses, one to hold the absolute value and the other tohold a scaled value of such kinetic parameter, which are used by the setof absolute generic simulation formulas in conjunction with theabsolute-valued variables, or by the currently default set of scaledgeneric simulation formulas in conjunction with the scaled-valuedvariables, respectively. Alternatively, in cases where the value of thekinetic-parameter is time-variant and dependent on other variablevalues, the modeler may choose for individual bioReactants to define forthat attribute an instance of kinetic-parameter-var (Table 13), in whichcase the modeler has to define the specific simulation formula toprovide the value for that particular instance, as previously described(FIG. 10). Examples:

-   -   Equilibrium-dissociation-constant (1423) and        Scaled-equil.dissoc.k (1424) for the subclasses of        binding-bioreactant (Table 98) indicate the absolute or a scaled        value, respectively, of the Ks characteristic of that agonist or        complex-subunit;    -   Catalytic-constant and Scaled-catalytic.k for the subclasses of        enzyme.r (Table 95) indicate the absolute or a scaled value,        respectively, of the characteristic kp of that enzyme, where kp        is the equivalent of the units of activity per catalytic center,        or kp=Vmax/[E]t (t⁻¹);    -   Michaelis-constant and Scaled-michaelis.k for the subclass        substrate.r (Table 96) indicate the absolute or a scaled value,        respectively, of the Km characteristic of that substrate, where        Km is the dynamic constant equivalent to the substrate        concentration that yields half-maximal velocity, or Km=(k−1+kp        )/k1. This attribute may optionally be considered to represent        the Ks, where Ks represents the intrinsic dissociation-constant,        or Ks=[E][S]/[ES]=k−1/k1 (M)=1/Keq, may be used when the system        modeled is under rapid equilibrium conditions, which is usually        not required because of the dynamic nature of the simulation        system of this invention, which may be used in a formula in        conjunction with the catalytic-constant or scaled-catalytic.k,        respectively, of the interacting enzyme.r; or    -   Inhibition-constant and Scaled-inhibition.k for subclasses of        inhibitor-bioreactant (Table 99), which values are optionally        set by the modeler to indicate the absolute or a scaled value,        respectively, of the Ki characteristic of that inhibitor or        antagonist (where the factor (1+[I]/Ki) may be considered as an        [I]-dependent statistical factor describing the distribution of        enzyme between the E and EI forms).

The class bioProduct (Table 60) has the subclass cell-bioProduct. Asshown in FIG. 15, a bioProduct (1518) is connected to an outputp-connection at the bottom of a bioEngine (1501), and represents thematerial contribution from a bioEngine to the bioPool to which it isconnected. To be operational, the bioProduct-post (711) connected to abioProduct must have the same name as one of the bioPool-p-posts (712)connected at the top of a bioPool (713). Every instance of bioProduct(1518) has its menu (1519), and selecting “table” (1520) displays itstable of attributes (1521), which in this case shows the default valuesfor its attributes. Not previously described attributes specific of thisclass include:

-   -   Production-Rate (1522) is given by a produc-rate-pvar (1523),        which value indicates the rate of production of the units that        will be added to the connected bioPool, which is dependent on        the bioProduct's Stoichiometric-coeff and the Velocity of the        bioEngine, and is an argument for the Input-rate of the        connected bioPool.        Class BioRole-post

A bioRole-post is located upon the subworkspace of a bioProcess and itsfunction is to connect a bioRole-Object to a bioPool through abioPool-post. The class bioRole-post (Table 65) is a subclass ofbioPost, from which it inherits all its capabilities, and has twosubclasses: bioReactant-post (703, 707), which together with abiopool-r- post (704, 708) distantly connects a bioReactant to abioPool; and bioProduct-post (711), which together with a biopool-p-post(712) distantly connects a bioProduct to a bioPool. The new attributedefined for these classes is:

-   -   Ref-bioreservoir (2234) is a pointer to the bioReservoir        instance (2209) that encapsulates the biopool-r-post or        biopool-p-post to which it is distantly connected. The value is        interactively set by selecting the “set-refs” (2229) option, and        it is used by the program for interactive navigation through        bioReservoirs and bioProcesses, as described below (FIG. 22).        BioModels

In this invention, a bioModel means an iconic knowledge structure,which, depending on the subclass, encapsulates in its subworkspace a setof interrelated composite bioObjects, such as bioReservoirs,bioProcesses or other bioModels. BioModels are used to partition theVirtual Model into a modular hierarchy of subworkspaces of bioModels,and can be also described as subsystems or fragments of a larger networkof pathways, which can be reused as modules of desired degrees ofcomplexity to be combined in a variety of ways to build larger anddiverse systems. BioModels are objects represented by icons (FIG. 23),and the constants, parameters, and variables that quantitatively modelthe system are distributed throughout their component building blocks,which function as distributed parallel processors. The dynamic aspect ofa bioModel is determined by a system of algebraic and differentialequations that provide the values for the encapsulated dependent andstate variables. BioModels represent empirical biological models derivedfrom experimental descriptive information and semi-quantitative orquantitative data. Very complex bioModels can be built by connectingcomponent parts of an unlimited number of other bioModels by means ofconnection-posts. The icon of some bioModels, such as sequentialtime-compartments (2303, 2318 through 2322), may contain stubs to allowconnection to other bioModels.

The class bioModel (Table 66) is a subclass of bioView-Object and haveno additional defined specific attributes, but inherit the attributesNames, Label, Description, References, Warnings, and Toggle-state. Itcomprises various subclasses (only some examples of which are listed inTables 66 through 73), which represent any physiological system atdifferent levels of structural complexity, such as organ (2328), tissue(2332), cell-interaction (2327, 2501), cell (2326, 2602), or subcellularorganelle (2310-2316, 2406, 2416-2420), or any other intermediatecompartment within those compartments, such as: submodel (2302-2305,2408), bioReservoir-Bin (2306, 2412, 2413), and On-Hold-Bin.). Asubmodel schematically represents a portion of any size of the networkof pathways of a larger structure, such as a cell-bioModel. Thesubworkspace (1630, 2409, 2520) of a submodel contains a set of relatedbioProcesses and also a bioReservoir-Bin (2412), which encapsulates(2414) a set of related bioReservoirs connected to those bioProcesses.However, the bioReactants and bioProducts of any bioProcess that is acomponent of a bioModel may be connected to bioPosts of bioReservoirsthat may be located in the same or in other bioModels. As the submodelbecomes larger, it may be broken down into smaller submodels by simplycloning a new submodel and transferring to its subworkspace the desiredbioProcesses and to the subworkspace of its bioReservoir-bin thecorresponding bioReservoirs. The connectivity of the pathways istransparent to movements of bioObjects from one bioModel to another,since they are directly connected among them through the structures uponthe subworkspaces of bioReservoirs and bioProcesses.

This architecture results in a hierarchy of bioModels encapsulatedwithin other bioModels (FIG. 24), which ultimately encapsulatebioProcesses (2410) and bioReservoirs (2414), which encapsulatebioReactants, bioEngines and bioProducts (2411), or bioPools (2415),respectively. Although this topology may appear complex, at run-timeeach of the variables depend on the variables of only those bioObjectsdirectly connected, and therefore the system operates as a set ofprocessors concurrently computing in parallel. The distant connectionsbetween bioProcesses and bioReservoirs, established through the bioPostsanywhere in the knowledge-base, interconnect the different bioModelsinto a dynamic multidimensional network of any unlimited complexity.This architecture facilitates the implementation of feedback and forwardloops, interactions between components of different pathways, elementsthat are shared by different pathways, and connections between segmentsof pathways that are built as separate reusable modules. When onebiopool participates in feedback-loops in two or more pathways, thisbioPool may be able to ‘switch’ one pathway to the other at a givenpoint, as a result of continuously varying functions, such as differentvelocities or diffusion rates.

The class On-Hold-Bin (2003) is characterized by having anactivatable-subworkspace, which is usually maintained deactivated. Theinstances of On-Hold-Bin are used to store within a submodelbioReservoirs and/or bioProcesses that are either substitutions for thebioReservoirs and/or bioProcesses encapsulated in such submodel, oradditional bioReservoirs and/or bioProcesses to extend the pathwayrepresented by such submodel, which are appropriately connected, butwhich the user wants to exclude from a simulation or other uses. Byhaving the subworkspace deactivated, all those structures are ignored bythe inference engine and the simulator. The user may have thosestructures included or excluded from a simulation or other uses at will,as described under the Modeler-Mode heading. The table of attributes ofeach instance of an On-Hold-Bin allows to store and access additionalinformation. All instances of On-Hold-Bin have either one of twoalternative menu options: a) if the subworkspace of the On-Hold-Bin isactivated, then the “deactivate-sw” is available, which upon selectionby the user deactivates such subworkspace; or b) if the subworkspace ofthe On-Hold-Bin is deactivated, then the “activate-sw” is available,which upon selection by the user activates such subworkspace.

Some of those subclasses of bioModels, such as the sequentialtime-compartments, can be independently activated and activated by theprogram during a simulation run. The efficiency of large-scalesimulation applications can also be significantly improved using thatmechanism, by having whole branches of the model that are not relevantat some point in time deactivated and activated when required, driven byevents generated as a result of the simulation itself, or at given timeintervals.

The class cell-bioModel (2326, Table 68) is used to represent a cell asobserved from the inside (FIG. 24). It is a container of subcellularcompartments that may encapsulate different layers of submodels until atthe end of the compartment hierarchy, the bioReservoirs and bioProcessesare encapsulated. Cell-bioModels are used for modeling prototypic cellsof interest in a very detailed way through their functional structuralcomponents, which at the end encapsulate variables and parameters thatallow to quantitatively simulate those models, or more realistically,constrained submodels within the cell, which can be selected byselecting any of the compartments at any desired level. The hierarchicalencapsulation allows not only to display different levels of detail tofocus only those parts of the system that are relevant to the user atany given time, but also allow to expand the model adding additionallevels of detail whenever desired. Each cell-bioModel or any of itsencapsulated bioModels can be used as modules to build other bioModelswith increasing degree of complexity. This modular and reusable buildingblock structure gives the system great flexibility and transparency,while allowing to build very complex cell-entities.

As shown in FIG. 24, each cell-bioModel (2401) has a subworkspace (2402)upon which are represented the characteristic phases of the cell cycle(2421), that follow a repeated cyclic pathway, or the cell differentiateinto a different stage (2428), or may go into apoptosis (2430), aterminal stage. The cell-phases (2318-2322, 2404, 2421, 2428, 2430)) aresubclasses of the class cell-phase, the main defined subclass of theclass time-compartment (Table 69), but other types ofcompartmentalization are also possible by means of instances of theclass time-submodel (2303, 2423, 2425, 2426). Instances of the classbiomodel-post (2403, 2429), ant its associated methods (Table 70) allowto connect those cell-phases with another cells-phases upon othercell-bioModel, and to display them.

-   -   The G0-compartment (2404) in cell biology represents        resting-cells. In this invention, this compartment also        represents the background processes of resting-cells, but in        addition it also contains all those background bioProcesses that        are not specific for any other phase of the cell-cycle or which        cross-over the boundaries of several of those phases. This        compartment is frequently the starting point of a simulation and        its bioPools are usually modeled by the default “normal”        steady-state values of the variables and parameters of interest.    -   he G1-compartment (2421) represents a state of cells after they        have been activated by external factors, and may be further        compartmentalized into two or more time-compartments. For        example: the G1.1-compartment represents activated-cells or        early-G1-phase-cells which have recently entered the G1-phase of        the cell cycle, as characterized by transcription of        early-response genes, expression of new receptors; while the        G1.2-compartment or late-G1-phase-cells, is characterized by        transcription of late-response genes or increased secretion of        specific cytokines or other signaling factors.    -   The S-compartment (2320) represents the state of cells in        S-phase, characterized by DNA synthesis.    -   The G2-compartment (2322) represents cells in the G2-phase,        characterized by double DNA content and before entering mitosis.    -   The M-compartment (2323) represents cells in the M-phase, during        the mitotic process.    -   The Di-compartment (2325, 2428) represents cells entering a new        differentiation stage, when a different set of activated        early-response and/or late response genes induce permanent        changes in the types of genes expressed. This layer is followed,        depending on the combination and strength of signals provided by        simulation events, by either the G0-compartment or both this and        the G1-compartment of the next cell type in the differentiation        pathway.    -   The Ap-compartment (2324, 2430) for apoptotic cells, when cells        in the G2-layer do not receive the appropriate signals to enter        the M-layer. This is a terminal layer which only effect is to        reduce the size of the total cell population. (Note that the        total cell population size is increased at the transition after        every M-layer, by an amount equal to the size of the population        in that M-layer. The non-specifically-modeled overall cell death        is represented by a decay parameter, set to fit the experimental        data.

The default time-duration (317) of each of these temporal layers is setaccording to experimentally obtained knowledge of such duration, underspecified “normal” conditions. A layer-rate-constant tl, is constrainedto values −1>tl>1 and initially set to 0. When the effects of differentcombinations and strength of signals on the duration of any of thelayers are measured, then the value of tl is adjusted to fit the targetvalues of the experimental set -->tT=tO(1+tl).

Each time-compartment (2404, 2423) encapsulates (2405, 2424) severalspatial compartments that run in parallel to each other, and whichrepresent the clearly defined subcellular compartments, calledcell-Compartments (Table 67), such as the cell-membrane (2406),cytoplasm (2416), nucleus (2417), endoplasmic-reticulum (2418), Golgiapparatus (2419), endosomes (2420), mitochondria, and so on. It alsoencapsulates a timer (Table 70, 2427) with an activation time attributegiven by an elapsed-simul-time-par, which can be used in the control ofthe deactivation of the subworkspace that contains it by inferencemethods based on such value. The connections between the timecompartments belong to the class cycle-path (Table 38) and encapsulate anumber of parameters and variables to hold the values of therate-constant and the progression rate that can be used when developingquantitative models for simulation purposes. A number of other variablesand parameters that describe among others: a) the size relatedattributes of the cells, and b) quantities related to populationdynamics, such as those shown in FIG. 3 (317-320), which are attributesof the cell-phases, are defined in Tables 3 through 11. A collection ofinference blocks (Table 23) may also be used to control (Table 77) theactivation and deactivation of the time compartments, at intervals thatare predefined or dynamically computed depending on simulated variablesare also defined. Table 88 lists as an example a set of simulationformulas for state variables that can be used to compute the dynamicchanges in cell numbers that are accumulated in each of the cell-phases,when using these graphic structures in combination with a populationdynamics approach. Furthermore, Table 78 lists a set of rules that canbe alternatively used to control the progression through thosecell-phases, when using the mechanistic approach. As the reader mayrealize, there are a number of different alternatives, encapsulatedwithin those graphic building blocks, to model the complex systems atdifferent levels, as discussed in the modeling section.

FIG. 24 shows the major states considered in the currently preferredembodiment of this invention, following the classical nomenclature andconcepts generally accepted in the scientific community, the restingstate is defined as the Go phase. Each of the values of the Cell-phaseattribute of a cell-bioModel indicates which of those phases iscurrently activated, if any in addition to the G0-phase. While at Go, ifthe cell is activated by a growth factor, antigen or any otheractivating stimulus, the cell enters the activated state or G1, fromwhich it can follow to other phases of the cell cycle or thedifferentiating states, depending on the signals received. G1 is boundedby the progression signal or cell birth and the initiation of DNAreplication, and characterized by sequential expression of additionalgenes, protein synthesis and cell growth. S is bounded by initiation andcompletion of DNA synthesis. G2 is bounded by the completion of DNAsynthesis and the initiation of mitosis, and characterized by furthercell growth and/or protein secretion. M is bounded by initiation ofmitosis and completion of cell division, usually represent about 2% ofthe total. Although the cell cycle is a continuous one, it can becompartmentalized into functional cycle intervals whenever it is deemeduseful to better represent the dynamic simulation of the system. Asshown in FIGS. 4, 28, and 29, there are switching points (406, 2803, and2911) at early G1 where the cell has to decide between thedifferentiation and the cyclic pathways resulting in a variety ofdifferent patterns that depend on both the internal stage of the cellsand other components in the system, external to the cells. A typicalpattern results in: a) cells in the resting stage, when the steady-stateconditions are assumed, then after activation by specific externalsignals, switching through the cycling phases one or more cycles, orback to resting, then after activation by specific external signalsduring one of those stages, switching to one of the next nodes in thetree, committing themselves to that branch of the tree in thelongitudinal pathway, then once at the new node they may go back to a)for a period of time, in a resting stage during which the newsteady-state conditions are assumed, or, if activated by specificexternal signals they may go back to b) with the new steady-stateconditions as the base-line.

Each of the cell-Compartments comprises a subworkspace (2407), which maycontain various submodels (2408). Other local-submodels (2304) are alsoprovided for other types of spatial compartmentalization. Thesubworkspace (2409) of a submodel may contain other submodels, andsubmodels may also contain bioProcesses (2410) or bioReservoirs. In thecurrent embodiment, the bioReservoirs (2414) are preferentially hiddenin a bioReservoirs-bin (2412) that belongs to that submodel.

As shown in FIG. 25, instances of the class cell-interaction (Table 72,2327, 2501) encapsulate in their subworkspace (2502) the interaction oftwo cells (2503 and 2504), that use the graphic extracellular-components(Table 72a) to interact with each other directly by means ofsurface-components (2505, 2506); through the components that onesecretes, the secreted-components (2507), for which the other hasspecific receptors, the surface-components (2508); and both interactwith their environment through specific receptors (2509) forsystemic-components (2510). As shown in FIG. 26, each of thosecomponents has a table of attributes (2616, 2620, and 2633), referringto an specific bioentity (2624), bioReservoir (2626) and bioProcess(2628) within the cell-bioModel, and are connected to the internalmechanistic pathways. Clicking on those icons displays their menus(2614, 2618, 2631) from which options the user can select the display ofthe associated structures, as specified in the attributes. The differentmenu options and their associated procedures are listed in Tables 72c,d, and e). Tables 72b and f list functions that allow the modeler toautomate the task of establishing the distant connections to thosegraphic structures. The interacting-cells (2503 and 2504, Table 72) inthis interface do not encapsulate a mechanistic model of its components,but rather refer to and display another cell-bioModel that store thosemechanistic models. In this way, this structure is used as an interfaceto design interactions between other cell-bioModel, and new cells andother connections to bioProcesses or bioReservoirs can be established.The external components (2612), such as serum or incubation media, orsingle or lumped toxic-byproducts, for which there are specified orlumped receptors are represented by a set of bioReservoirs, such asserum-Pool, are connected to a bioProcess with a receptor-engine thathas at least one bioProduct connected with one of the bioReservoirswithin the cell. The function of the bioEngine is to compute theconsumption an exhaustion of nutrients at a rate proportional to m, thespecific growth rate. The byproduct-Pool's concentration is used tomodify the value of m by multiplying it by a parameter 0<m<b 1.

Cells are represented in this invention in two different ways: as theclass cell-bioModel (2401) composed of cell-Compartments, as describedabove, and as the class cell (2602) used to represent a cell as observedfrom the outside and including any defined, mostly external,characteristic markers (2607), as shown in FIG. 26, that can be used toassigning that cell to one type of cells and to distinguish it fromcells of other types. The instances of class cell (2602, 2705), withsets of stubs on the top and bottom of their icons, are used to classifycells according to a branching differentiation tree, as shown in FIG.27, to define the many nuances between them that differentiate them fromeach other, particularly when following the almost continuousdifferentiation process. As an example, a Th2-lymphocyte (2607) is shownin FIG. 26. An instance of cell may correspond to an instance ofcell-bioModel, but it is expected that there are many more intermediarystages represented by the lighter cells, which represent the much lowerlevel of detail most frequently available. BioReservoirs representingcell populations may refer in their Ref-bioentity attribute to a namedinstance of cell. One of the menu options for this class is “biomodel”,which, upon selection, displays the subworkspace of the bioModelreferred to by one of its attributes, Ref-biomodel, if any, and thatoption is only visible when such attribute has a value. The classdifferentiation-pathway (2335, 2701, Table 73) provides structures thatallow the modeler to manually build differentiation trees, such as theone shown in FIG. 27, which are based on expert-knowledge to representthe sequential progress from one stage of differentiation to the next.The different stages through which a cell lineage goes through is acontinuous process, which can be simplified with the representation usedin this system consisting of discrete stages that represent differentstages of differentiation, defined by characteristic and measurablephenotype, that follow a tree like longitudinal pathways. The cells inthose pathways are of the class cell (2602, 2705) and furtherencapsulate detail as shown in FIG. 26. A cell contains information in atable of attributes (2605) and in its subworkspace where the differenticons include a cell-surface (2608), since this is a representation ofthe cells from the outside, and a set of components that allow that cellto display characteristic markers and receptors that allow them tointeract to the outside world.

Inference and Simulation Structures

Functions are statements, which define a sequence of operations that areperformed when the function's name and arguments appear as part of anactive expression. The tabular-function-of-one-argument (Table 74), aclass defined within the Shell, has an important use in the domain ofthis invention by allowing to deal with situations when the algebraicrelationship between two variables is not known, but the experimentaldata is available, and straight-line interpolation is optional. Tabularfunctions can also be used in other expressions, such as the rule: ifthe [Product1]([Substrate1]) decreases then inform the operator that“[Substrate-1] may be inhibitory at high concentrations”.

Relations are defined associations between two items, which can bedynamically concluded and reasoned about, and in the currentimplementation of this invention, they represent physical and abstractrelationships between objects, such as a-downstream-bioReservoir-of, orthe-downstream-BR-list-of. After being defined by the developer,relations are established transiently at run-time by the inferenceengine. The dynamic reasoning used for query, navigation, and simulationdepend heavily in the use of relations, in addition to the graphicalconnections. The existing relations for a particular object can be alsobe listed using the “describe” option. Most of the relations are createdduring the initialization set of procedures, while others are created atrun-time.by the sets of procedures used during query, navigation, andsimulation. The creation and breaking of relations are treated as eventsthat are forward chained to rules that refer to the relations in theirantecedent. Relation definitions are shown in Tables 75 and 218a.

Domain-specific rules (Tables 76 through 81) are used to conclude or torespond to the changing conditions in the world defined by thedomain-specific knowledge structures. In the current embodiment, a rulehas, in addition to its body that encodes the rule itself, a set ofattributes that can be configured to establish its mode of operation andto define its restrictions, such as: whether it can be invoked byforward chaining and backward chaining, whether it may cause dataseeking or forward chaining, focal classes and focal objects, priority,and its scan interval. Different types of rules may lack some of thosecapabilities. For example: a) whenever rules have no focal objects orclasses, and cannot be invoked by forward or backward chaining, beingonly event driven. Such events may be a relation being established orbroken, or moving the icon by the user, which is frequently used in thisapplication to either trigger the automatic configuration of the valueof some attribute, or the appearance of the icons, or the position ofthe icons; and b) initially rules are first and only invoked when aknowledge-base is started, or when a subworkspace is activated.Therefore, the situations to which those rules applied, and theconditions under which they can be invoked, can be very much constrainedby the generic and specific sets of options and attributes of eachparticular instance.

Formulas (Tables 82-88) in this system can be defined as expressionsthat define the relationships of a variable or parameter to othervariables or parameters, in a way that when one variable or parameterchanges the formula predetermines in which way other variables orparameters will be changed, either by the inference engine, in the caseof general formulas, or by the simulator, in the case of simulationformulas. Generic simulation and general formulas provide values for awhole class or group of bioVariables or bioParameters, in contrast withthe specific simulation and general formulas, which are attached to thedefinition of one variable and apply only to that variable. Thedefinitions of generic simulation formula for sets of scaled-valuedvariables (Tables 83 and 84), mixed-type variables and absolute-valuedvariables (Table 86) will be discussed under the Simulation Modeheading.

Modeler Mode: Creating the Virtual Models

Menus, Palettes and Libraries

The Modeler Mode is made available to those users who have rights tobuild or modify applications. The modeler's tasks are all based on thebasic paradigm of “Clone, Connect, Configure and Initialize”, andconsist of building and configuring graphical models of the structure ofbioEntities, as well as to design and build graphical models of complexnetworks of cross-talking pathways, which result from the modeler'sactions of cloning, connecting and configuring sets of bioProcesses,bioReservoirs, and bioEntities. To facilitate the modeler's tasks, theModeler-Menu provides a way to organize and access the differentcomponents of the system.

FIG. 16 shows the domain-menus associated with this mode, shown herepulled-down for demonstration purposes. Selecting the “Help & ModeMenus” option (1601) allows access to the available user modes, whichupon selection causes a change to that mode of operation and displaysthe specific domain-menus associated with that user mode, only for thewindow from which it is selected. Selecting Modeler Mode (1602) displaysthe top layer of menu heads, which additionally comprise the options“Palettes” (1603), “Structure Libraries” (1619), and “Pathway Libraries”(1628), allowing to access parts of the Virtual Models by selecting thedesired options from the menu, which usually requires navigating througha hierarchy of walking menus. The following discussion of this menusystem also serves the purpose of discussing how the building blocks areorganized in Palettes and how the iconic models build by the modeler areorganized and stored in Libraries. Palettes contain domain-specific andgeneric building blocks built by the developer and to be used by themodeler, while Libraries contain application-specific models built bythe modeler and to be used by different types of users. Palettes areprovided to allow the modeler to quickly create new instances fromprebuilt generic bioEntities, bioReservoirs or bioProcesses, or any oftheir components, which comes with their corresponding default or novalues, to be then configured by editing their tables of attributes. Afacility is provided, the Modeler-Palettes-Bin, to automatically createnew empty Palettes to be populated by modelers, to allow them to expandand complement the built-in library of building blocks to satisfy theirmore specific needs. The Palettes provide a large number ofcharacteristic types of bioObjects, grouped by subclasses and organizedin special subworkspaces of named go-to-sw buttons organized in thesubworkspace of a “Palettes-Bin”. Palettes are accessible through thedomain-menus, and because of their defined user-restrictions, selectionof any bioObject upon a Palette in Modeler Mode implies clone, whichautomatically results in a clone of such bioObject (including itssubworkspace and all structures upon it, and all the further levels ofencapsulation) to be attached to the mouse-pointer and ready for themodeler to transfer it to the desired subworkspace. Selecting “Palettes”(1603) pulls down its options, which may point directly to the palettesof important classes of bioObjects and model-blocks, such as 1604>2001and 1608>1901, and 1616 points to 2301. In the case of classes withlarge number of building blocks, those may be grouped further in anumber of palettes that can be accessed through walking menus, such aswhen selecting “Molecules” (1609) displays a pull-down menu headed by“Molecules” (1610), which options may now point directly to Palettes.Examples are shown in FIG. 17, such as when selecting “ProteinComponents” (1617), the options of the walking menu generated lead,among others, to “Protein Domains” (1701), “Protein Motifs” (1706), and“Simple bioEntities” (1711).

Libraries Comprise Among Others Two Types:

Structure Libraries, are hierarchically organized workspaces (1623)containing models of specific complex-bioEntities (1624) that model thefunctional structure of molecules or molecular-complexes at variouslevels of complexity, and which can be accessed by selecting the optionsof the menu head “Structure Libraries” (1618). For example, Selecting“Cytokine Library” (1620) displays the menu (1621), which options referto libraries of different families of cytokines, and further selectingone, such as “IL4.like Library” (1622), displays the library (1623) ofthe IL4 family, which contain several cytokines with similar structures,which prototype is IL4 (1624), which subworkspace contains severaldomains, motifs and groups. Those icons may be used to: a) be cloned andmodify to build different but related structures; b) be placed in thesubworkspace of protein-complexes, as shown in FIG. 18; or c) they maybe preferentially named and copied, as described below, and the dummycopies that refer to the original are used for several of the morecomplex structures.

Pathway Libraries, are hierarchically organized workspaces (1630)containing sets of related bioProcesses, such as those contained in thesubworkspace of a submodel, and a bioReservoir-Bin with thebioReservoirs connected to those bioProcesses, where those bioProcessesand bioReservoirs are connected forming the nodes of a pathway that maybe or not multidimensionally branched. The pathways included in thelibraries are those that are common to several systems, although theymay require some modifications, and they can be cloned instead of beingbuilt from scratch. Alternatively, the “Pathway Libraries” (1628) menumay be used to hierarchically access any submodel of the Virtual Model,as an alternative to interactively navigate through all the layers ofsubworkspaces involved. The options of the menu head “Pathway Libraries”(1628) point directly to submodels, which subworkspaces are displayed.For example, selecting “EGF.R.Pathway” (1629) displays the components ofthe initial specific steps of such pathway (1630) containingbioProcesses (1631) and a bioReservoir-Bin (1632). To convenientlyhandle large and complex pathways, the components can be partitionedinto more submodels, by simply transferring related sets of bioProcessesand their corresponding bioReservoirs to the subworkspace of anothersubmodel, without affecting the connectivity of the pathways in any way.When the application grows larger and the number of submodel increase,those direct domain-menus options are replaced by other options thatlead instead to walking menus offering as many hierarchical levels asnecessary. Modelers can also clone submodels, in which all thebioProcesses organized in its workspace, together with the containedbioReservoir-Bin and all the bioReservoir organized in its workspace,are also cloned preserving the labels and any other attributes, but withno names, since names are unique. All new bioReservoirs and bioProcesseshave to be named (with the same basic name and different tags), and theconnections have to be reestablished by naming the bioPosts and settingthe ref-attributes, as discussed elsewhere for new sets.

Creating New Composite Objects

There are several alternatives for building new generic types ofcomposite bioObject. One method comprises the following steps: a) aninstance of the desired class, such as bioProcess, is created byselecting from the menu of the object-definition of that class the“create-instance” option and transferred to a workspace; b) thesubworkspace of such instance is created by selecting from its menu the“create-subworkspace” option; c) the desired set of instances ofcharacteristic classes of visualObjects are created or cloned andtransferred to such subworkspace; and d) the newly created instances arepositioned and connected in specific ways, to conform to the designsspecified in this invention. A preferred alternative way is to “clone”an existing composite bioObject that is similar to the desired one, anddelete and/or add components, as desired. The additional genericbuilding blocks are added to palettes accessible through thedomain-menus, and are used to create new instances of the same type bycloning such generic structures. Cloning an object in this inventionmeans cloning also its subworkspace, and all objects upon itssubworkspace, and any objects upon the subworkspace of each of thoseobjects, and so on. The modeler can then further individualized eachnewly cloned instance by configuring the attribute tables of thesuperior object, or by configuring the attribute tables of the objectsencapsulated within that superior object, either as attribute objects oras objects upon successive subworkspaces.

Furthermore, it is possible to create transient objects at run time intwo ways: a) by using the “create a <class-name>” and “transfer”actions; or b) by using the “create a <class-name> by cloning<instance-name>” and “transfer” actions, which is the equivalent to theclone option described above, and is the preferred way for compositeobjects. Transient objects can be made permanent by using in additionthe “make <instance> permanent” action after the instance has beentransferred to a workspace. This invention makes extensive use ofdynamically creating objects at runtime by cloning, such as whencreating dynamic pathways, dynamic query-panels, dynamicquery-output-panels, dynamic entry-panels, dynamic graphs, dynamiclists, and so on. A set of partially prebuilt complex sets ofstructures, such as those required for the different types of panels,are organized and stored in the subworkspaces of objects called bins,and used as master structures to be cloned and completed with additionalcontext-dependent structures at runtime, as will be described under theGeneral Mode and Simulation Mode headings below.

Modeling BioEntities

The modular functional representations (FIG. 18) of structure that arenovel teaching of this invention allow to represent the modularstructural patterns frequently used by nature. The iconic structuralrepresentation is used to abstract the detailed structure of differentmolecules to highlight their similarities, and to show that evenprototypes for different families present several similarities.Abstraction is obtained in part by selectively hiding some detail in thesubworkspaces of other components focusing on components and the waythey are arranged that relate to their function, to offer users visualmodels that facilitate their reasoning about structure-functionrelationships. The components of a molecule are used by the user toreason about its function, since the presence of given domains, motifs,or simple-bioEntities usually is associated with described function,therefore directing the scientist's attention to further focus on thosefunctions. Each of those instances of bioEntities have their associatedtables of attributes, where the modeler can include additionalinformation, data, and references to access other sources of informationabout those models, which can provide to the user a wealth of knowledgein the form of an intuitive and interactive visual database. Theknowledge extracted from those models can be integrated in thisinvention with other forms of knowledge, related to the function ofthose bioEntities, provided by the pathways related models. For example,the members of each family may be involved in similar mechanisms butresult in very different and even opposing effects, due to theparticipation of their bioPools in different pathways. That knowledgeintegration is performed sometimes interactively by the user, andsometimes programmatically as a result of an interactive request by theuser, depending on which of the many capabilities of this invention isused. Each superior bioEntity represents the structure of a biochemicalphysical entity in a particular state, such as different chemicalmodifications, different states of association with other entities, orthe products of different mutations or artificial manipulation orquimeric constructions, which corresponds to the concept that differentbioReservoirs hold molecules or complexes in different states. Thestructural and other types of information about the units that form abioPool, as provided in the corresponding bioEntities, is supplementaland is not necessary for creation or navigation thought the pathways, orfor simulation. This information is used independently of the pathways,or they may be used in combination, as in the complex queries.

FIG. 17 shows the Palettes with representative examples of masterinstances of some of the different subclasses of protein-domain (1701),protein-motif (1706), and simple-bioEntity (1711), are accessed throughthe walking menu of “Protein Components” (1616). Some of those buildingblocks are very generic or “empty” structures, such as the examplesshown of the subworkspaces (1703 and 1708) of catalytic-subunit (1702)and spacer (1707), respectively, while others may contain more or lessdetailed prototypic structures, in which case they are namedmaster-structures that may be referred to by the master-bioentityattribute of its copies, such as the example shown of the structure(1705) of a fibronectin.type.III-domain (1704. Each instance of thesecomponents have an associated menu (1805) from which options specificfor each class can be selected to perform generic or specific tasks.Selecting the “table” option (1823) shows their tables of attributes,such as the examples shown for the tables (1710 and 1713) of aleucin-zipper-motif (1709) and a loss.of.function.protein.mutation(1712), respectively, providing options for the modeler to includeadditional information, which in this case is specific for each instanceor copies. Clones of those instances can be combined in different waysto model, using the basic paradigm of “Clone, Connect, Configure andInitialize”, at the desired level of detail, the structure of abioEntity.

In addition to the standard Shell's “clone” capability, which applies toevery object, there is a novel domain-dependent capability associatedwith the class complex-bioEntity and all its subclasses. Selecting the“create-local” option (1824), restricted to Modeler Mode and when thebioentity has a name, starts the et-create-local-proc (Table 89) andallows the modeler to create local copies from any instance. The termclone means in this invention a complete reproduction of the original,with exception of the name, while the term copy means an incompletereproduction that is usually stripped from the contents of thesubworkspace of the original, but has a pointer to the original and isused in conjunction with it. The master-bioentity attribute of thecopies is automatically set to refer to the named master-structure. Thedummy copies refer to the original when the “master-details” isrequested, which subworkspace with the prototypic structure isdisplayed. Local copies of any complex bioEntity (includingbioentity-components), may have private specific information in itstable of attributes and in its subworkspace, shown by selecting the“local-details” option, while it can also display the subworkspace ofits master bioEntity. Simple-bioEntities do not have a subworkspace anddo not have master-bioentity attribute. This implementation is preferredto avoid redundancy, including saving storage resources, and allowingmodification at only one site when the details of the structure have tobe modified.

As shown in FIG. 18, the subworkspace (1807) shown for a specificmulti-unit receptor-complex (1804) contains the icons of its variouscomponents, which may be copies, such as those referring to structuresin the Libraries (1808, 1815, and 1817), or may be originals, such asfor the simple components or some specific complex components (613, 619and 621 are originals within the original master structures). Uponclicking on each of those components, their subworkspaces or thesubworkspaces of their master structures are displayed on the screen,showing their structural composition. The level of detail is optional,and components at different levels in the hierarchy of subclasses can beconnected to each other. For example, clicking upon a subunit of thereceptor (1808, a copy) shows its structure (1809, from the master)composed of domains, other simple-bioEntities, and other optionalauxiliary structures, such as those that may encapsulate: notes aboutits function (1810), sequence (1811), references (1812), or a GIF imageof its three-dimensional structure. Any of those components mayencapsulate more detailed information, such as that displayed whenclicking in one of those domains (1813), which structure (1814) iscomposed of other domains, spacers and other simple-bioEntities. Back tothe main structure, clicking on a kinase (1815, copy) that forms part ofthe complex, its structure (1816, from the master) may be represented byits two subunits, a regulatory-subunit and a catalytic-subunit, eachcontaining or pointing to additional detail. Or the structure can bedirectly represented directly by it lower level components, such as whenclicking on other associated kinase (1817), which structure (1818) iscomposed directly by several domains and other simple-bioEntities. Anyof those molecular components may encapsulate in their subworkspace anytype of other relevant information, when more detailed structure is notavailable or not desired. For example, clicking on one of the domains(1819) shows (1820) differences in the sequence of a functionallyimportant homology region of that domain for different members of thatfamily of molecules (which allows to represent all members of the familyby just one structure, by describing additionally the differencesbetween the different members), while clicking on another domain (1821)shows more information (1822) about conserved subdomains within thatfamily. In general, simple-bioEntities may be linked to a motif, adomain or even to a subunit or a molecule. The structure may focus ononly those parts of the structure that have functional relevance. Ifintermediary stretches within the structure are unknown or that detailis not desired, they may be represented by domains called spacers.

Modeling Pathways

The bioReservoirs Palette contains prebuilt default instances of:

BioReservoir-Bin (2306), used to store a set of related bioReservoirsupon its subworkspace and prebuilt with the standard set of navigationbuttons used on most subworkspaces, a go-to-sup-obj-button and ahide-sup-ws-button, and a bioObject-title, which is standard for thesubworkspaces of all bioModels as well as of all complex-bioEntities;

On-Hold-Bin (2003), used to store upon its subworkspace bioReservoirsand/or bioProcesses connected into pathways that the modeler may want tooffer as alternatives, and which the user may include or exclude from asimulation or other uses at will, by using any of three alternatives: a)desired individual structures can be moved out of the On-Hold-Bin andtransferred to the subworkspace of such submodel, or itsbioReservoir-Bin if bioReservoirs; b) if all structures are desired forinclusion, the subworkspace of the On-Hold-Bin can be activated anddeactivated at will; or c) two On-Hold-Bins can be used to transferthose structures between them at will, one to be permanently deactivatedand the other be activated and to hold only those structures desired forinclusion. If any of those structures are substitutions for otherbioReservoirs and/or bioProcesses contained in such submodel, then thosestructures they are replacing should be removed to a deactivatedOn-Hold-Bin. This subworkspace is prebuilt with an additionalhide-and-deact-sup-ws-button, which upon clicking on it when thesubworkspace is activated, hides and deactivates such subworkspace; and

A set of different prototypes of bioReservoirs, representing all thesubclasses, which differ in the instance of the bioPool they encapsulateof the one corresponding subclasses of bioPool, and in the color of thetype-color region of their icon. Each of those prototypic bioReservoirscomes with a minimal set of basic structures, and model-boxes andadditional bioPosts are added interactively when needed. By cloning abioReservoir from its Palette and transferring it to the subworkspace ofa bioReservoir-Bin, it can then be connected to a bioprocess. Anotheralternative for adding bioReservoirs to the Virtual Model is to cloneexisting bioReservoirs with similar characteristics, by selecting the“clean-clone” option (1239) from their menu, and configure the new nameand desired attributes. The “clean-clone” option starts theBR-clean-clone-proc, which creates a clone of such bioReservoir and setsthe values of all the attributes of all structures involved, includingthe bioReservoir and its subworkspace and all structures upon it, totheir default values. This capability is useful to create cleanbioReservoirs of desired types that are available on the workingsubmodel, without the need to open the Palette. The modeler can add,modify or remove connections to bioProcesses, by creating and naming thecorresponding bioPosts. That established distant connectivity isindependent of the location of bioProcesses and bioReservoirs throughoutthe Virtual Model or the workspace hierarchy, and no additional changesare required when moving those structures from one location to another.Various menus options and associated methods are offered to automate thetask of establishing those connection, which will be described after thediscussion of the creation of bioProcesses.

The modeler can also model inputs or outputs to a bioPool asmathematical models using model-blocks (1222) held in model-boxes(1218), as previously discussed (FIG. 12). A set of menu options,restricted to Modeler Mode, are defined for the class bioPool toautomate the task of adding a scaled-input-model-box (1218), input-model(1236), or output-model-box (1237), when desired. The options labeled“add-scaled-input” (1325), “add-input” (1326), and “add-output” (1327),start their associated methods, create-scaled-input-model-box-proc(Table 90), create-input-model-box-proc, andcreate-output-model-box-proc, respectively, which result in the cloningof the corresponding prebuilt master model-boxes, and then transferringthe new instance to its specified position in relation to the bioPool.The modeler has only to extend its stub to join it with thecolor-matched stub of the bioPool. Each of those named master structuresis simply a generic model-box, each of the subclass referred to by itsname, with a color-coded subworkspace containing a connection-post,which attribute Superior-connection has been set to refer to the onlyconnection stub of the superior model-box. Any model-block connected tosuch connection-post of a model-box is connected also with any object towhich the model-box is connected, resulting in the ability to establisha connection between an encapsulated model-block and a bioPool, bycloning the desired model-block from the Palette and connecting to theconnection-post of a model-box connected to that bioPool. The genericformulas that provide the value for the Accumulation of each bioPoolalready integrates the output of any such connected model-block aseither an absolute input, a scaled input or an output, depending on theclass of the model-box that encapsulates the model-block.

As shown in FIG. 19, the Model-blocks Palette (1901) is provided to themodeler with a default instance of each of the subclasses ofmodel-block. Model-blocks (Table 22) and the different genericsimulation formulas (Table 87) to compute their value of their output-1attribute have been previously defined. Some examples of the attributesfor some subclasses with their default values are shown through thetables of attributes of: constant.f (1902), exp.c.pdf (1903), exp.rn.pdf(1904), unif.c.pdf (1905), sigmoid.f (1906), and generic.model.block.f(1907). The latter is a very generic block that allows the modeler tocreate instances and configure as many attributes as required bydefining their slots with any desired type of value, including instancesof model-block-var, in which case their specific formula would also haveto be defined. The output-1 of this block is also a variable for whichthe modeler has to write its formula, to incorporate as arguments thenewly configured attributes

As shown in FIG. 20, the bioProcesses Palette (2001) provides the mostrepresentative types of generic bioProcesses, prebuilt and ready to becloned and further configured. These preassembled and stored structuresallow the repeated use of bioProcesses as building blocks of morecomplex pathways. Like in chemical systems, some bioProcesses arerelatively simple and some may become more complex, but all are builtwith the basic building blocks (2504-2511). The modeler can, forexample, clone a R2.L1, which subworkspace (2008) comprises onereceptor-bioengine connected with two receptor.r (which may each beconnected to different bioPools, if the active receptor is an homodimerof two equal molecules, or to the same bioPool, if an homodimer of twoequal molecules), and one ligand.r at the top, and one bioProduct at thebottom. After transferring the clone to the desired workspace (2409),the bioProcess can now be configured, by clicking on its icon andselecting its “table” (1403) of attributes. Selecting “details” (1416)from its menu displays its subworkspace and provides access to all itscomponents, which can now be configured by accessing their tables ofattributes. BioProcesses have activatable-subworkspaces, which meansthat any object upon such subworkspaces is not recognized by theinference engine or the simulator unless the subworkspace is activated.

An alternative to the Palette is to clone another existing bioProcesswith similar characteristics and labels directly from a submodel, andthen transferring them to the desired submodel and the configuring itscomponents. Two menu options are provided to facilitate that task,“labeled-clone” (1427) and “clean-clone” (1428), which start eitherBP-labeled-clone-proc or BP-clean-clone-proc, respectively. The firstprocedure creates a clone of the bioprocess, and then sets the values ofall the attributes except the label of all structures involved,including those of the bioProcess and of all the structures upon itssubworkspace, to their default values. The second procedure calls thefirst one, and also sets the values of the labels attribute of allstructures involved to their default values.

The bioEngines Palette and the bioReactants Palette shown in FIG. 21 areprovided for the purpose of allowing the modeler to: a) modifyindividual instances of bioProcesses cloned from the Palette, toaccommodate particular infrequent needs; and b) to design new prototypicbioProcesses, by starting from a clone of an existing bioProcess andadding or removing bioReactants or bioProducts, or by exchanging thebioEngine for another of compatible type. The modeler may want to modifythe Velocity attribute of any bioEngine, and to provide specificformulas to represent their favorite equations to best describe theprocess being modeled, which have to refer to the specific set ofbioReactants connected to that bioEngine. Such newly designedbioProcesses may be stored as building blocks in the appropriate Palettewithin the Modeler Palette Bin, as described.

In addition, the modeler may use a tabular-function (Table 74) as alook-up-table, from which the program is able to interpolate, to model aprocess by entering experimental pairs of values of the independent andthe dependent variables in such table, such as a dose response. Tofacilitate that task, the option “create-sw” (1526, Table 91) is definedfor the class bioEngine that starts the create-sw-for-bioengine-proc,which creates a subworkspace for the bioEngine by cloning thesubworkspace of the bioengine-sw-master, which contains atabular-function-of-1-argument and instructions for the modeler abouthow to use such a tabular-function.

As shown in FIG. 22, several steps are required to establish theconnection between a bioReactant or a bioProduct and a bioPool. Tofacilitate this process and to reduce the sources of error whileentering those values by the modeler, various methods are offered toautomate the tasks of: creating and naming, or removing the names, ofbioPool-posts, removing the names and the references of bioRole-posts,and to set the appropriate values for the ref-bioprocess ofbioPool-posts and ref-bioreservoir of bioRole-posts, as following:

The first step is to select the bioProcess (2201) and bioReservoirs(2205, 2207, and 2209) to be connected, if already in existence,otherwise they are created by cloning from the Palettes and named.BioProcesses and bioReservoirs have to be named before their bioPostscan be named. By selecting the “details” option (2203) from the menu(2202) of the bioProcess, and such of the bioReservoirs, theirsubworkspaces (2204, 2206, 2208, and 2210, respectively) are displayed.Selecting the menu (2214) option “add-top-post” (2215) of the bioPool(2213) starts the create-biopool-p-post-proc (Table 92), which firstscans for the first free stub of those defined at an even-numbered port(p02 to p12) and a) if one is found, it creates an instance ofbiopool-p-post (2217) and aligns it opposite to such stub within thefirst layer, b) if none is found, it then scans for the first free stubof those defined at an uneven-numbered port (p01 to p11) and, if one isfound, it creates an instance of biopool-p-post and aligns it oppositeto such stub within a second layer (more distant from the bioPool) ofsuch bioPool-posts, and if none is found, then: i) it moves the existingbiopool-p-post connected at the first port (p01) to a more distantposition, to start the next layer, ii) it creates an instance ofbiopool-p-post and transfers it to the next free predefined positionwithin that layer; and c) it sends a message to the modeler withinstructions for making the specific connection. Then it calls thepool-post-name-it-proc (Table 93) and returns. The “add-bottom-post”(2216) functions in a similar way, but it adds instead biopool-r-postsat the bottom of the bioPool.

To connect each of the bioRole-posts (2212, 2218, and 2225) to acomplementary and not yet connected bioPool-post of the appropriatebioReservoir requires to create a new bioPool-post of the appropriatesubclass and to establish the connection to the bioPool by extending itsstub and joining it to the closest free stub on the bioPool, and thenestablish the distant connection to the bioReactant-post (2218). Here isshown how a distant connection is established between and already namedand connected bioPool-p-post (2219) and the bioProduct-post (2225).Clicking on the bioPool-p-post (2219) in Modeler Mode displays its menu(2220), and selecting “table” (2221) shows its attributes (2222). Thetables for a bioRole-post (2222) and a bioPool-post (2228) are shownwith all the values already set. At this point in the connectionprocess, the values for the Ref-bioprocess (2235) would be the defaultvalue none, while the values of the Names (2223) and the Label (2224)attributes will be already set, with the value of the Label set to bethe same as its name in the case of all bioPosts to be used at run-timewhen using the alternative simulations procedures, as discussed underthe Simulation Mode heading.

To give the bioRole-post (2225) the same name as the name of thebioPool-post (2219) to which is to be connected is accomplished byselecting either the “name” option (2227) or the Names attribute valueslot (2232) of the bioRole-post (2225) and clicking on the name-display(2228) of the bioPool-post (2219), since name-display has text-insertioncapabilities and automatically inserts its text. This completes thebasic connection process that allows the inference engine and thesimulator to reason about those connections. Once the bioRole-post(2225) and the bioPool-post (2219) are equally named, theRef-bioreservoir attribute (2234) of the bioRole-post and theRef-bioprocess attribute (2235) of the bioPool-post are automaticallyset to refer to each other's superior bioObjects by selecting the “setrefs” option (2229) of the bioRole-post, which is only available when ithas a name. These attributes are used by the program when the userselects the “show-br” option (2241) or the “show-bp” option (2242),which are available in the menus (2220 and 2229) of bioRole-posts andbioPool-posts, respectively, only when those attributes have a value.

A more detailed description of those methods, with references to theirdefinitions follows:

-   -   the option “name-it” (2240, Table 93) upon its selection starts        the pool-post-name-it-proc (Table 93). This procedure gives the        “names” attribute of the bioPool-post a name composed of the        base name of the superior bioReservoir (removing the ending BR        tag) followed by the default value of the “label” (2224), which        is a reference to the class and relative position of that        bioPool-post, such as PP8 referring to bioPool-p-post connected        at port p08, and also colors the face-color region of its icon.    -   the option “unname-it” (2236, Table 94) upon its selection        starts the poolpost-remove-name-proc (Table 94), which changes        the values of the names and the ref-bioprocess attributes of the        bioPool-post to their default value none, removes the base-name        from the value of the “label” (2224) restoring it to its default        value, and resets the face-color of its icon to gray.    -   the option “set-refs” (2229, Table 96) upon its selection starts        the rolepost-set-refs-proc (Table 96), which changes the values        of the “ref-bioreservoir” (2234) of the bioRole-post and the        “ref-bioprocess” (2235) of its connected bioPool-post to equal        the names of the bioReservoir (2209) superior to such        bioPool-post (2219) and the bioProcess (2201) superior to the        bioRole-post (2225), respectively.    -   the option “unname-it” (2237, Table 95) upon its selection        starts the rolepost-remove-name-proc (Table 95), which changes        the values of the “names” (2232), “label” (2233), and        “ref-bioreservoir” (2234) attributes of the bioRole-post, and        the “ref-bioprocess” (2235) attribute of the bioPool-post, to        none.

The metabolic and regulatory pathways of cells and organisms arecomposed of a large number of processes. To simplify the overallstructure of the system, or when the intermediary detail is unknown, itis possible in the currently preferred embodiment of this invention toconsider parts of such pathways as black-box-bioProcesses with inputsand outputs connected to other modeled pathways or to otherblack-box-bioProcesses, which are not modeled in detail. If and when itis desired to model disturbances at specific points in the pathwayrepresented by a black-box-bioProcess, it can be split into the pathwaybefore and the pathway after the regulated location, which isrepresented by a normal bioProcess, with the two new pathway segmentsnow represented by two new black-box-bioProcesses, and the segment wherethe disturbance occurs to be defined and modeled.

In addition, it may be desirable to model a pathway as a single lumpedbioProcess. Such may be the case for an enzymatic pathway for which: a)the details may be unknown or not desired, b) only the inputs and theoutputs are relevant, and c) sufficient quantitative or qualitativeinformation is available about the rate limiting enzymes and the inputs.Because of metabolic and energy/mass conservation constraints, only afew of their net conversion rates are independent variables, and theothers are mutually dependent, various of those reactions can becombined and the pseudo-steady-state approximation of the combinedprocess can be used instead. For these cases, the currently preferredembodiment of this invention provides enzyme-bioProcess subclasses withtwo or more enzyme-bioReactants, with their Velocity depending only theConcentrations of those enzymes, together with the substrates that areinputs to the pathway and the products are outputs of the pathway,ignoring the intermediaries and other participating enzymes. Thefollowing are examples of overall rates of synthesis resulting in theproduction of a cytokine, IL2, as a cellular response to its binding ofanother extracellularly provided cytokine, IFN-a, that could berepresented by a set of bioReservoirs and bioProcesses, to representeach of the terms of the equation:rs(TF-IFN-a)=k1*[IFN-a] andrs(mRNA-IL2)=k2*[TF-IFN-a]; or rs(mRNA-IL2)=1+ka[IFN-a]/1+ka[IFN-a]+ks;rs(IL2)=k3*[mRNAIL2];Biochemical Modeling Techniques

The metabolic and regulatory pathways of cells and organisms arecomposed of a large number of processes. To simplify the overallstructure of the system, or when the intermediary detail is unknown, itis possible in the currently preferred embodiment of this invention toconsider parts of such pathways as black-box-bioProcesses with inputsand outputs connected to other modeled pathways or to otherblack-box-bioProcesses, which are not modeled in detail. If and when itis desired to model disturbances at specific points in the pathwayrepresented by a black-box-bioProcess, it can be split into the pathwaybefore and the pathway after the regulated location, which isrepresented by a normal bioProcess, with the two new pathway segmentsnow represented by two new black-box-bioProcesses, and the segment wherethe disturbance occurs to be defined and modeled.

In addition, it may be desirable to model a pathway as a single lumpedbioProcess. Such may be the case for an enzymatic pathway for which: a)the details may be unknown or not desired, b) only the inputs and theoutputs are relevant, and c) sufficient quantitative or qualitativeinformation is available about the rate limiting enzymes and the inputs.Because of metabolic and energy/mass conservation constraints, only afew of their net conversion rates are independent variables, and theothers are mutually dependent, various of those reactions can becombined and the pseudo-steady-state approximation of the combinedprocess can be used instead. For these cases, the currently preferredembodiment provides enzyme-bioProcess subclasses with two or moreenzyme-bioReactants, with their Velocity depending only theConcentrations of those enzymes, together with the substrates that areinputs to the pathway and the products are outputs of the pathway,ignoring the intermediaries and other participating enzymes. Thefollowing are examples of overall rates of synthesis resulting in theproduction of a cytokine, IL2, as a cellular response to its binding ofanother extracellularly provided cytokine, IFN-a, that could berepresented by a set of bioReservoirs and bioProcesses, to representeach of the terms of the equation:rs(TF-IFN-a)=k1*[IFN-a] andrs(mRNA-IL2)=k2*[TF-IFN-a]; or rs(mRNA-IL2)=1+ka[IFN-a]/1+ka[IFN-a]+ks;

-   -   rs(IL2)=k3* [mRNAIL2]; For bioReservoirs that represent the        input into the system of a synthetic agonist or antagonist, the        Concentration has a normal default initial value of 0.0, it has        no modeled inputs from bioProcesses, and it may be modeled by a        model-block. However, quantities of that compound may be        transferred to another regular bioReservoir in a different        compartment.

It may not be desired in most occasions that the synthesis ofmacromolecules be visually modeled by bioProcesses, because of itscomplexity and the large number of steps or components involved. Inthese situations, the synthesis may be modeled by adding a model-blockto one input-box connected to the bioPool, which is represented by theadditional term already integrated in the Accumulation equation. Theoutput of this model-block may define a global synthesis-rate that maybe made dependent on the values of any other variable of the systemmultiplied by a synthesis-rate-constant (k_(rs)) parameter, a separateattribute of the model-block. The k_(rs) may also be dynamicallyincreased or decreased (by multiplying by appropriate factors) asdefined in rules or procedures, which are fired or called as a result ofthe activation or deactivation of other bioProcesses, which directly orindirectly regulate the processes of DNA-transcription into mRNA,mRNA-splicing, mRNA-translation into protein precursors, or theprocessing of the precursors into the active-form of the proteins (allor part of which may or may not be visually modeled).

When degradation or diffusion are important components of the model,they can be separately modeled by: a) using additional bioProcesses tomodel those processes, b) adding a model-block to the output-boxconnected to the bioPool, or c) using additionally defineddegradation-rate or diffusion-rate parameters, respectively, andmodifying the formula accordingly by adding the corresponding terms. Thefirst two approaches are recommended because they are more flexible andmodular.

Processes in which the binding step is the limiting factor (thecatalytic or other actions are fast so that the ES complex is veryshort-lived), are usually modeled by a single bioProcess. If the complexstays around exposed to other interactions, two bioProcesses may beused: complex-formation and catalytic or other action, each with itsrespective constants. Inhibitors and antagonists should be modeled byseparate bioProcesses.

In the system of this invention, the intermediary complexes that areformed in enzymatic reactions, and their concentrations such as [ES1] or[ES1S2], are preferably not explicitly represented, unless they are thespecific targets of regulation or translocation to differentcompartments. Otherwise, they are implicitly represented within themodel equation of the bioEngine.

Reaction systems with two or more substrates of the ordered or ping-pongtypes, may be represented by either one bioProcess with two substrate.r,in conjunction with the appropriate

Velocity equation, or by two separated bioProcess in series. Preferable,these types of reactions are modeled by two bioProcesses in which theparticipants are represented as following: a) the enzyme and the firstsubstrate are the enzyme.r and substrate1.R of the first bioProcess, b)the bioPool of the enzyme-substrate1 complex is represented by both abioProduct of the first bioProcess and by the enzyme.r for the secondbioProcess, c) the second substrate is the substrate.r of the secondbioProcess, and d) one bioProduct of the second bioProcess may berepresent the bioPool of the enzyme. To be more accurate, in theping-pong case the bioProcess cannot be said to be first or second,since the enzyme oscillates between the “free” and the “complexed”states.

In reactions with cooperativity, such as allosteric reactions of anenzyme with n equivalent substrate binding sites, can be either modeledby: a) one bioProcess with a 1E.nS.1I.HMME bioEngine with each of the nsubstrate.r representing the same bioPool, each with a stoichiometriccoefficient equal to 1, but each with a different effective Kmcorresponding to each additionally bound molecule, and a Velocityformula representing a Henry-Michaelis-Menten equation, as shown, or b)one bioProcess with a 1E.1S.1P.01.HE bioEngine with one substrate.r withstoichiometric coefficient equal to n, and the Velocity formularepresenting a Hill equation. In that case, the overall affinityconstant (K=j*K′{circumflex over ( )}(n), where j=a*b*d* . . . x) isequivalent to the product of the K1′ of the first bound site times theseries of K1′ times the coefficients by which each molecule of ligandbound modifies the affinity of the other sites.

Allosteric reactions of an enzyme with binding sites for two or moredifferent ligands, either substrates, inhibitors or modifiers, can beeither modeled by: a) one bioProcess in which each ligand is representedin the formula for appropriate class of variable providing the Velocity,or b) two or more bioProcesses, in series or parallel or both, when themechanism of the reaction is known and information is available. Thelatter case is preferred where separate bioProcess, one for each ligand,compete with each other for the common component(s), with an strengthdependent on their respective affinities and Concentrations. In additionto the cases above, it is in general preferable to model severalcomplex-form-process in the following cases, as described in more detailbelow:

-   -   all types of inhibitions in which an irreversible complex is        formed, such as E+I->EI, or E+S+I->SEI,    -   the effects of antagonists, such as R+Ant->R-Ant, and    -   the feedback activation or inhibition by products, such as        E+X+P->P+Y+Z, where P is the product of either this reaction or        a downstream reaction. Different types of inhibitors may be        modeled in a variety of ways to show different behaviors,        usually involving a complex-form-process in which the resulting        complex would have different characteristics:    -   A competitive inhibitor and the substrate are mutually        exclusive, which means that El does not bind S, but it may        result in E+S+I<->ES+EI->P. This type of reversible competition        is best modeled as one enzymeEngine comprising enzyme.r,        substrate.r and inhibitor.r with its matching standard kinetic        equation. The intermediary complexes may be modeled if desired        by editing the value of the time-lag, to account for the time        the E, S and I spend in the complex forms ES and EI, not        explicitly modeled otherwise. The same approach can be applied        to any other class or type of bioprocess, when appropriate.    -   An irreversible inhibition is equivalent to enzyme removal from        the system, with the Vmax reduced, and it is therefore best        represented by two parallel bioProcesses: an enzymeProcess for        E+S->P, and b) a complex-form-process for E+I->EI. The        production rate of P is influenced by the Concentration of S,        directly, and I, indirectly, while the production rate of EI is        indirectly influenced by the Concentration of S. It may also be        represented by one enzyme-process encapsulating enzyme.r,        substrate.r and inhibitor.r, and two bioProducts (E+S+I->P+EI),        with its matching standard kinetic equation.    -   An uncompetitive inhibitor may bind reversibly to the ES complex        yielding inactive ESI complex, but it does not bind to enzyme        alone. This model needs some modifications of the regular        bioProcesses, because it requires access to an intermediary        complex that is not explicitly modeled in the system of this        invention in a standard enzyme-process (E+S+I->P). This type of        reaction may be represented by three bioProcesses, first in        series and then in parallel: a) complex-form-process:        E+S->ES; b) enzymeProcess: ES->E+P; and c) complex-form-process:        ES+I->ESI. It may also be represented by one enzyme-process        comprising enzyme.r, substrate.r and inhibitor.r, and one        bioProduct (E+S+I->P), with its matching standard kinetic        equation.    -   A noncompetitive inhibitor and the substrate do not affect each        other's binding to the enzyme, however the trimeric complex SEI        (ES+I->SEI or EI+S->SEI) may be inactive. The main effect is a        sequestering of either enzyme or both enzyme and substrate, and        the Vmax is reduced. This type of reversible competition is best        modeled by three different bioProcesses: an enzyme-process        E+S->P (a), and two complex-form-process: E+I->EI (b), and        E+S+I->SEI (c), where (a) and c) have the same Ks and (b)        and (c) have the same Ki. It may also be represented by one        enzyme-process comprising enzyme.r, substrate.r and inhibitor.r,        and three bioProducts (E+S+I->P+EI+SEI), with its matching        standard kinetic equation.    -   A mixed-type inhibitor I is such that reversible binding of        either I or S to E changes the Ks or Ki of the other by a factor        a, yielding ES, EI and inactive ESI complexes. It may be best        represented by three different bioProcesses: an enzyme-process        E+S->P (a), and two complex-form-process: E+I->EI (b), and        E+S+I->SEI (c), where (a) and (c) have different Ks and (b)        and (c) have different Ki. The Ks′ of (c) may equal the Ks        of (a) multiplied by a, or similarly, the Ki′ of c=a*Ki, where a        is a cooperativity-coefficient that may be introduced as a        factor in the formulas of the respective Ks or Ki.

Different types of feedback regulation by downstream products arerepresented by different sets of bioProcesses. As examples are given thefollowing cases of feedback inhibition by more than one product:

-   -   Cooperative or synergistic inhibition is when mixtures of P1 and        P2 at low concentrations are more inhibitory than the sum of        inhibitions by each at those concentrations, and at saturating        levels of either one of the products P1 and P2, the velocity of        the reaction may be driven to zero; It means that both P1 and P2        can combine with E simultaneously to form EP1P2complexes. This        system may be represented by 4 bioProcesses: an enzyme-process:        E+S->P (a), and three complex-form-processes: E+I1->EI1 (b),        E+i2->EI2 (c) and E+I1+I2->EI1I2 (d), where I1=P1, and I2=P2,        and where (d) have different Ki1 and Ki2 than (b) and (c) (the        K′i1 of (d) =a*Ki1, and the K′i2 of (d)=b*Ki2, where a and b are        cooperativity-coefficients).    -   Cumulative or partial inhibition is when each end product is a        partial inhibitor, and a saturating level of one alone cannot        drive the velocity to zero. Each of I1 or I2 alone, either        increases the Ks of S (partial competitive inhibition) or        decrease kd of E (partial non-competitive inhibition) or both        (partial mixed-type inhibition). True cumulative inhibition        results in the second case, where the total inhibition factor is        iT=i1+i2*(1−i1). This type of reversible competition is best        modeled by three different bioProcesses: an enzyme-process:        E+S->P (a), and two complex-form-processes: E+I1+I2->EI1I2 (b),        and E+S+I1+I2->ESI1I2 (c), where (a) and c) have the same Ks        and (b) and (c) have the same Ki1 and Ki2. It may also be        represented by one enzyme-process comprising enzyme.r,        substrate.r, inhibitor1.r and inhibitor2.r, and three        bioProducts (E+S+I1+I2->P+EI1I2+ESI1I2), with its matching        standard kinetic equation.    -   Concerted or multivalent inhibition is when both end products        have to be present to be inhibitory, and either alone has no        effect on E. It means that either EI1I2 does not bind S or        ESI1I2 is inactive. It may be represented in two alternative        ways, either by: 1) two bioProcesses: one enzyme-process:        E+S->P (a) and one complex-form-process E+I1+I2ESI1I2->EI1I2        (b); or 2) one enzyme-process: E+S+I1+I2->ESI1I2 (c). In        both (b) and (c), the matching standard kinetic equations        include a term to represent the concerted effect of I1 and I2,        that is proportional to the Concentration of I1 multiplied by        the Concentration of I2    -   Additive inhibition implies the presence of two distinct enzymes        or catalytic sites, each sensitive to only one of the feedback        inhibitors. This type of reversible competition is best modeled        by three enzyme-processes: a) E+S1+S2->P; b) E+SI+S2+I1->P;        and c) E+S1+S2+I2->P. It may also be represented by one        enzyme-process comprising enzyme.r, substrate1.r, substrate2.r,        inhibitor1.r and inhibitor2.r, and one bioProduct        (E+S1+S2+I1+I2->P+EI1I2+ESI1I2), with its matching standard        kinetic equation.    -   Sequential inhibition is when downstream of E1 and S1, one        product P1inhibits enzyme E2 and another product P2inhibits        enzyme E3 of another pathway of utilization of S1. When both P1        and P2==are at high levels, S1 accumulates, and S1 may also        inhibits E1. This type of feedback inhibition is best        represented visually by a combination of the appropriate        bioProcesses, as described above, in parallel and in sequence as        required.

Lumped Enzymatic Pathways: In occasions, it may be desirable to model apathway, such as an enzymatic pathway, for which: a) the details may beunknown or not desired, b) only the inputs and the outputs are relevant,and c) sufficient quantitative or qualitative information is availableabout the rate limiting enzymes and the inputs. Because of metabolic andenergy/mass conservation constraints, only a few of their net conversionrates are independent variables, and the others are mutually dependent,various of those reactions can be combined and the pseudo-steady-stateapproximation of the combined process can be used instead. For thesecases, the currently preferred embodiment of this invention providesenzyme-bioEngines classes with templates and stubs for two or moreenzymes, and which formulas consider only those enzymes, together withthe substrates that are inputs to the pathway and the products that areoutputs of the pathway, ignoring the intermediaries and otherparticipating enzymes.

Black-box-bioProcesses: The metabolic pathways of cells and organismsare composed of a large number of chemical reactions and compounds,that, assuming normal physiological conditions, maintain thesteady-state of the system. To simplify the overall structure of thesystem, in the currently preferred embodiment of this invention many ofsuch metabolic pathways are considered as a black box with inputs andoutputs connected to other modeled pathways or two other black boxes,and are generally not modeled. The black boxes are considered, untilbetter defined, as a collection of constitutive bioEntities interactingunder steady-state conditions. If and when it is desired to modeldisturbances at specific points in the pathway, the black-box can besplit into the pathway before and the pathway after (both of whichremain like black boxes), and the segment where the disturbance occursto be defined and modeled.

Handling Challenging Aspects of Modeling Complex Systems' Behavior

Modeling Internal Mechanisms of Cells

The transfer of molecules from compartment i to compartment j does nothappen at once, but rather follows a Gaussian distribution, which may bemodeled using the corresponding model-block from which thetranslocation-rate would be dependent. The bioEngines have also a“time-lag” (1510) attribute, defined as the time interval between theavailability of the bioReactants to the bioProcess and the availabilityof the bioProducts to the next bioPool, which can be used for processeswhere translocations of molecules or cells are involved. The analyticequations for the distribution of bioEntities in consecutive pools are afunction of the initial concentration of the first bioPool and thecorresponding translocation-rate constant (k, 1507) and time-delays (d,1510), respectively, of the successive bioEngines. For example, to modelthe series of translocations of proteins through the severalcompartments in which they are processed after their synthesis, with thesystem of this invention the modeler would clone from the Palettes a setof bioReservoirs and bioProcesses of the appropriate types o representthe different terms of the following equations, which are thentransferred to the appropriate compartments, connected and configured,and desired values are given to the model parameters. Translocationrates between compartments could be expressed as translocationhalf-times, defined as: t_(1/2, nu)=ln(2/K_(nu)), where K_(nu) is therate constant for processing in the nucleus or the rate constant fortransport from the nucleus to the ER, or both lumped together. Forsteady-state balanced growth, where m=0 and rp(t) is the rate oftranscription in the nucleus (molecules/hour/cell):[RNA]_(nu,ss)(t)=rp(t)/K_(nu). The additional equations that follow aresimilar to those proposed for cell cycle-dependent protein accumulationby Bibila & Flickinger (1991) Biotechnology and Bioengineering 38:767-780, and have to be adapted for use in the simulation formulas ofthe system of this invention, which takes a dynamic approach:[X ₁ ]=§X ₁ *[X ₁]_(o) *e ^(−k1*t)  (this is ER)[X ₂ ]=§X ₂ /§X ₁ *[X ₁]_(o)*(e ^(−k1*t′) −e ^(−k2*t′))*k ₁/(k ₂ −k ₁),where t′=t−d ₁  (this is Golgi)[X ₃ ]=§X ₂ /§X ₁ *[X ₁]_(o)*(−(e ^(−k1*t″)−1)/k ₁+(e ^(−k2*t″)−1)/k₁)/(k ₂ −k ₁), where t″=t−d ₁ −d ₂  (this is extracell. comp. forsecreted proteins)

-   -   On many occasions, the newly generated molecules are secreted,        while on other occasions, the newly generated molecules are        retained in the cell, either to maintain housekeeping functions,        which are usually included in the steady-state and no implicitly        modeled, or they result in new cellular functions in which case        its mechanisms are graphically modeled. If this response results        only in proliferation, the inference engine may monitor the        simulation of the cell mechanisms (FIG. 28), and based on the        values of certain variable or sets of variable, may cyclically        activate (2802) the next phase-compartment in the cycle.        However, if the response results in cellular differentiation,        the inference engine activates (2805) a different cell-bioModel,        if such exits, that represents the new stage of differentiation,        or will send a message to the user otherwise.    -   The different bioProcesses in a cellular bioModel may be        activated for different periods of time, if placed within        sequential time compartments (2421), but they will be        overlapping with many other bioProcesses encapsulated in the        G0-phase-compartment (2404), which are not deactivated during a        simulation. BioReservoirs that may be participate in two        different sequential time compartments are preferably located        and contained within the G0-phase-compartment, to maintain the        continuity and to carry over the values of its        concentration/density/scaled-amount from one sequential discrete        time compartment to the next. These temporal compartments        represent somewhat defined cellular phases with different        activities.    -   Mechanisms that are well studied in one animal species can be        interpolated in the pathways of other species where the pathway        may be less understood, such as in humans, by cloning the        submodel (2408) encapsulating the bioReservoirs (2413) and        bioProcesses (2409) from the first species and transferring to        the appropriate compartment of the second, and then renaming and        reestablishing the appropriate connections. For instance, the        genes that participate in programmed cell death or apoptosis in        the nematode C. elegans have been identified, and it appears        that ced-9 acts by inhibiting ced-3 or ced-4 activity. Since the        human bcl-2 is also active when inserted into C. elegans (Vaux        et al., Science 258: 1955) and it is also believed to be the        homologue of ced-9, a model equivalent for that for the        interactions of ced-9 with ced-4 or ced-4 can be also        constructed for bcl-2 with ced-3-like or ced-4-like.    -   BioPools that represent points of entry for non-physiological        substances, such as drugs or synthetic agonists, antagonists or        inhibitors that are not produced within the cells, at the        compartment where it is first introduced have the following        characteristics: a) they receive their values only from external        sources, such as a simulation-panel, initially, the        concentration equals the external input, and therefore Σ        inputs=entry Value; b) they have a basalConcentration value of        0, c) they have no schematically modeled inputs, d) e) they may        have several schematically modeled outputs, through        modification- and translocation-bioProcesses, in addition to the        decay term that represents diffusion, degradation and dilution,        and e) the quantity variables of those bioPools cannot obtain        values higher than those inputted by the user, but may get        smaller over time due to the outputs and the decay factor        ([As]*(m+Σ outputs)≦[entry]). When that compound is modified or        translocated to another compartment, the latter's is a regular        bioPool, but still constrained.        Modeling Cell Population Dynamics

There is a number of ways of modeling and simulating cell populationdynamics, using this invention. A number of attributes defined for theclasses cellReservoir (Table 48), cellPool (Table 51), cell-bioModel(Table 68), and other bioObjects can be used to hold parameters andvariables to be used for that purposes. Following the teachings of thisinvention, other attributes can be similarly defined and used to bettermeet any particular biological system to be modeled, or hypothesis thata user may want to test, or to meet the needs for any monitoring orcontrol system that use those biological models. Some examples arepresented below.

The state transitions are represented in the system of this invention bytranslocation bioProcesses (405, 407, 414, 417) between two bioPools ofentities in the former and in the latter states, at a rate that isdetermined with one of three approaches: a) mechanistic approach; b)probabilistic approach; or c) deterministic approach.

In the mechanistic approach, the rate of the translocation process willbe dependent on the dynamically changing values of certain variable orcombination of variables, implicitly modeled inside an indicatedcell-bioModel (FIG. 24), reaching some threshold value(s). With thisapproach, the high-level models may be integrated with the mechanisticmodels, representing both the spatio-temporal integration in a singlecell-bioModel and the quantitative data about populations of such cellmodeled. This mechanistic approach is currently difficult to implementfor the particular domain selected for this invention, since there isnot sufficient information available. This approach can be implementedwith better known systems in other domains.

For some simplified in vitro biological systems, such as oocyteextracts, a mechanistic approach is used to model a transition for whicha mechanism is known or expected, such as the role of the interplaybetween cyclin-B2 and the phosphorylated and dephosphorylated forms ofthe cdc2-kinase in the transition from the G2 to the mitosis phases ofthe cell cycle. The rate of increase in the number of cells with acdc2**cyclin (cc) level greater that o in a given cell cyclephase=fraction of cells in that phase (G₁)* {the rate at which cellswithin that phase reach a cdc2**cyclin level ([cc]^(G1)) greater thatø—the rate at which cells with cdc2**cyclin level greater that ø leavesthat phase):

The following is an example of how a simplified mechanistic approach canbe implemented. The rates of growth in eukaryotes and the rates oftranslocation from one cell-state-pool to the next can be represented aslinear or non-linear functions of the concentrations of specificmolecules, such as external regulatory factors, regulatory enzymes, andtotal and specific mRNAs. For example, if a limiting protein Ldetermines the transition from one time-compartment to another, then theexpression of the mRNA for L could regulate that transition.Furthermore, the growth-rate m can be represented as a linear functionof the concentration of a given specific mRNA, and the rate of mRNAtranscription can be represented as a non-linear function of theconcentrations of two or more growth factors (or other regulators), orit can be assumed to be a combination of growth associated andstimulus-dependent kinetics. In turn, the steady state values of allenzyme synthesis rates and the total specific RNA level are a function(linear for RNA) of the steady-state specific growth-rate m. The totalRNA can be used as a measure of the growth resources of the cells, sincethe ability to increase a stimulus-induced specific sRNA is limited bythe amount of synthesis proteins, which is limited by the amount oftotal RNA. Because the relatively high rate of RNA turnover and thedilution effect of cell growth, the [sRNA] responds immediately to aremoval of the stimulus-effector. With an increase of thestimulus-effector, the rate of increase of [sRNA] is controlled by atime constant, which is inversely proportional to the total RNA of thecell (Copella & Dhurjati 1990. Biotech. Bioeng. 35:356-374). The modelerwould clone from the Palettes set of bioReservoirs and bioProcesses ofthe appropriate types o represent the different terms of the followingequations, which are then transferred to the appropriate compartments,connected and configured, and desired values are given to the modelparameters. The following equations have to be adapted for use in thesimulation formulas of the system of this invention.(m=k_(X)*([mRNA]−[mRNA]o)-->(1/h)=(gX/gRNA)*(gRNA/gX/h);t=k_(X)/(m+k_(X)*[mRNA]o/[X]), where k_(X) is the rate constant for mRNAtranscription (gRNA/gX), t is the time constant (gX/gRNA), and[mRNA]o/[X] is the specific [mRNA] at m=0. The growth rate can also beviewed as the sum of all rates in one simple anabolic pathway divided bythe total mass (growth from glucose in bacteria): m=(Σr_(i))/[X]. Thenumber of generations: F=log(2)((X−Xo)/Xo)); m* G₁*e^(mt)* ∫_(ø)^(∞)1^(G1)(x)dx=G₁*e^(mt)*([cc]^(G1)(ø)*1^(G1)(ø)−r(G₁->S)*∫_(ø)^(∞)q(x)dx), where 1^(G1)(x) and q(x) are the frequency functionsdescribing the cc content distribution for cells in G₁ and G₁->Stransition, respectively, and r(G₁->S) is the rate constant thatdescribe that transition; r(G₁->S)=m/G₁*(N₀+G₂+S); r(S->G₂)=m/S*(N₀+G₂);r(G₂->G₁)=m/G₂*N₀

The following equations are examples of how overall rates of synthesiscan be used to implement black-boxes, where each of those equationsprovide the value for the Velocity of the black-boxes to be representedby the corresponding type of bioProcesses: for IFN-a->IL2:rs(TF-IFN-a)=k1*[IFN-a] and rs(mRNA-IL2)=k2*[TF-IFN-a] (orrs(mRNA-IL2)=1+ka[IFN-a]/1+ka[IFN-a]+ks;); rs(IL2)=k3*[mRNAIL2].

By using the concentrations variables of sol-mol-pools, expressed asmoles per volume units rather that per cell, it would not be necessaryto adjust the steady-state concentration with growth for constitutiveenzymes, since it is assumed that both increase at the same rate, whilefor regulated enzymes, the dilution effect is more apparent, since it isnot paralleled by synthesis. In the current implementation focusing onregulatory processes, since most of them take place in the form of largemolecular complexes, highly localized in some parts of the cell, itwould be more meaningful to use the defined density variables (moleculesper cell). To synchronize the simulation from the intracellular to thecellPool level, the quantities of all the bioPools of extracellularmolecules are halved at each cell division transition. In addition,specific rates are rates per cell, and total rates are specific ratesmultiplied by the cell density. Specific cell components may increasethroughout the cell cycle: a) continuously at a constant rate, b) at arate that doubles when the DNA is replicated, c) at a progressivelyincreasing rate that follows fist-order kinetics, or d) discontinuously,according to a sequence of events that changes the rates in a complexpattern.

When the mechanisms are unknown, a deterministic approach may be takenwith the transitions modeled as time-dependent events. As shown in FIG.3, the cell-phase compartments, which are holders of mechanistic models,also have an attribute Interval (317) to hold information about theexperimentally observed duration of that phase of the cycle, which canbe used during a simulation-run to deterministically deactivate suchsubworkspace when that period of time has elapsed since the subworkspacewas activated, or whenever any type of known constraints are met (FIG.28). In the deterministic approach, the rate of the translocationprocess is defined by a rate constant, which may have a constantpredefined value, or its value may be variable and set at run-time by asimulation formula, an expert rule, or procedure, such as one that readsthe phase's “interval” just described, or it can be modeled by amodel-block. The transfer of cells from cellPool i to cellPool j doesnot happen at once, but rather follows a Gaussian distribution, whichmay be modeled using the corresponding model-block.

Following is an example of a high-level representation of the effect ofsome drug on cell growth, when there is partial mechanistic knowledgeavailable, but where most of the many other steps in the pathwaysleading from the external drug to the regulation of cell growth areunknown. In a system where enzyme X1 produces a soluble substance c thatis used in the formation of active enzyme X2. If X1 and X2 represent thetotal amounts of X1 and X2 contained in n cells, and if X2 is thecomponent that, upon reaching a threshold, determines the occurrence ofcell division, so that n=bX2, where b is a constant, then, assumingsteady-state, when c remains at a steady concentration and therefore theformation of X2 is proportional to [X1]), follows that:d[c]/dt=A(X1/n)−B(X2/n)[c]−C[c]=0, (1) where A, B, and C are constants.From (1) it can be said that c=b X1/X2, and following a set ofderivations it results that the growth rate is: k=d(ln n)/dt=d(lnX2)/dt. If now c decreases from the action of some drug, then X2, whichis proportional to [c], decreases. The cell growth rate dn/dt=b dX2/dtwill also decrease. The effect of the drop in c is an increase in X1relative to X2, until a new level of X1 is reached that restores thecell growth rate to its initial value. In the representation used inthis invention:

-   -   the 1st term is represented by an enzyme-bioProcess        corresponding to the formation of c by X1, where the        enzyme-bioReactant would be connected to the bioPool of X1, the        substrate-bioReactant would be connected to the bioPool of the        precursor of c, and the bioproduct would be connected to the        bioPool of c;    -   the 2nd term is represented by an complex-formation-bioProcess        corresponding to the consumption of c in the formation of X2        from c and other subunit(s), connected to the appropriate        bioReservoirs; and    -   the 3rd term could be represented, depending on the specific        biologic mechanism to be modeled, by: a) a        complex-formation-bioProcess corresponding to the consumption of        c in the formation of a complex leading to the loss of c by        degradation by a ubiquitin-dependent mechanism, connected to the        appropriate bioReservoirs; or b) a translocation-bioprocess,        representing other mechanisms of loss of c, such as by        diffusion, connected to the appropriate bioReservoirs; or c)        implicitly represented by the degradation-coeff within the        formula that determines the current amount of c, which includes        a term with default degradation.    -   in this system, the scaled-amount set of variables is used,        because what is relevant for the behavior of the system are the        relative value of X2 in relation to its threshold, which        determines cell division, and the ratio between X1/X2, which        regulates the rate of production of X2, and not their absolute        amounts.    -   the value of the number-of-cells attribute of the cell-bioModel        that encapsulate those bioProcesses and their corresponding        bioReservoirs, is doubled when the scaled-amount of the bioPool        of X2 reaches the threshold, and at the same time, X1, X2 are        halved while [c] remains constant.

The above example is an oversimplification, and in fact much more iscurrently known about the mechanisms that determine the initiation ofmitosis, in which complex interdependencies are involved, such as theequivalent of X2, a complex, regulating not only the rapid increase inits production by a positive feedback loop upon the equivalent of X1,but also X2 regulating its destruction by activating an enzyme in theubiquitin-dependent mechanism, and X2 regulating its inactivation byactivating another enzyme that converts X1 back to c. In general, in theabsence of diffusion, the simple case that might produce organization intime is that of two concentration variables, X1 and X1, where the valueof each is dependent on the value of both, such as when: d[X1]/dt=v1(X1,X2 ); and d[X2]/dt=v2 (X1,X2 ).Other high-level physiological eventscan be modeled in a similar manner, such as considering different cellssubsets (i.e. neutrophils) changing compartments(intravascular->interstitial space during inflammation) as induced bycytokines (i.e. TNF-a, which is produced upon activation by macrophages,neutrophils, T-lymphocytes, natural killer cells and mast cells) inchemotactic-bioProcesses. The time-period that a cell subset stays insuch a compartment depends in part on the expression of adhesionproteins (such as E-selectin (ELAM-1) or ICAM-1 by endothelial cells,which expression is induced by TNF-a), which will be components ofcell-interaction-bioProcesses.

Modeling Progression Through Different Cell States: The Cell Cycle andCell Differentiation

Each cell-phase (Table 69) and cell-bioModel (Table 68) has twoattributes called the Generation-number (318, F) and the Number-of-cells(319, N, per volume unit). At each cell division at the mechanisticlevel, that is, when the subworkspace of the M-compartment isdeactivated and optionally the subworkspace of the G1-compartment isactivated, predefined expert rules (Table 78) set F=F+1 and N=2 n foreach cell-phase of that cell-bioModel. Another attribute calledMass-per-cell (X), can optionally be given a value and used to calculatespecific values as a function of cell mass, in which case predefinedexpert rules (Table 78) set X=X/2 for the G0-phase, and the G1-phase ifapplicable, of that cell-bioModel, and then the value of that attributewould be modeled as dependent on time or as dependent on any othervariable(s), such as the concentration of some specific mRNA(s) orprotein(s), until reaching again a value of X or close to X. In turn,the value of X can be used to adjust other quantities or to control theactivation and deactivation of the subworkspaces of each successivecell-phase of that cell-bioModel, making it dependent on cell-size. Theequivalent at the population level at mitosis is that n cells from theM-phase bioPool are translocated to the G0-phase (or the G1-phasedepending on the situation) bioPool while multiplied by 2, so that theG0(G1)-phase bioPool receives 2 n cells.

FIG. 28 is a representation of the mechanistic approach, and attempts torepresent on paper what can be achieved dynamically at run-time applyingthe innovations of this invention. If we assume that a cell is inGo-phase state and focus on that state's sub-workspace (2801), and therewe assume that variables represented as Z and W have received the valuesz and w, respectively, then following the implementation described inthis invention, a rule will be invoked (2802) that will activate thesubworkspace of the G1.1-phase (2803) compartment. Activation ofG1.1-phase.sw implies that all the variables and parameters encapsulatedwithin the bioObjects contained upon that subworkspace will be availableto the simulator, and the data flow can now continue through any branchof the pathways represented there. Therefore, upon required events beingsatisfied, such as Z and W reaching certain thresholds -which could bean effect of binding one or more growth factors to their receptors onthe cell membrane-, the cell makes a transition from the G0 to the G1.1phase. The subworkspace of the G0-phase remains activated during thewhole simulation run because it encapsulates all those bioProcesses thatare not cell cycle specific. Focusing now on the simulation of theG1.1-phase (2803), two expert rules could be invoked, saying that“Whenever variable A receives a value a>ø1 then activate G1.2-phase.sw”(2804), or “If X and Y receive values x>ø2 and y>ø3 then activateDifferentiated-Cell.sw” (2805) and depending on which one is invokedfirst, either the subworkspace of the G1.2-phase (2806) compartment orthe subworkspace of the Differentiated-Cell.sw (2807) compartment willbe activated, since the subworkspace of the G1.1-phase (2804)compartment will be deactivated by another two expert rules that statethat “Whenever the subworkspace of the G1.2-phase (orDifferentiated-Cell) is activated then deactivate the subworkspace ofthe G1.1-phase”. This way of reasoning applies to the other cell-phasesas well, with the difference that the options vary for each cell-phase.For example, the G1.2-phase (2806) and S-phase (2808) may be committedto only one option, with the time for progression to the next phasebeing determined by one rule, as shown, while the G2-phase (2809) andM-phase (2810) have two options, and which one will be activated iscontrolled by two rules, as described above. One of the options,Apoptosis (2811) is a dead-end stage, representing regulated cell death.While in M-phase (2810), a live cell's program tells it, before orduring cell division, to continue proliferating, in which case one orboth the daughter cells entering again the G1.1-phase, by activating thesubworkspace of the G1.1-phase, or to exit the cell-cycle, in which casethe simulation continues with only the Go-phase. Note that the optionsfor each one of the cell-phases have been predefined by thecharacteristic number of stubs for each subclass.

The dynamics system diagram (2812) in that figure is used to representthat the defined attributes of the subclasses of cell-phase contain avariable that allows to keep track of the proportion of the cells, fromthe original number on Go-phase, are progressing through the phases ofthe cycle, as an alternative to build a model with a set ofbioReservoirs and bioProcesses. This variable can be modeled using aprobabilistic or mechanistic approach. In a probabilistic approach forrepresenting cell-phase distributions, a balanced growth type of cellpopulation is characterized by such distributions, which is a timeinvariant property even if their total number increase exponentiallywith a constant specific growth rate m. Each of the subsets of thatpopulation, which represent different cell-phases, and which can also berepresented as separate cellPools in the system of this invention,increase in number at the same specific rate and are also characterizedby time invariant property distributions, which is represented by theTypical-fraction (320, Table 69) attribute of each of the cell-phases.At some steps during a simulation, the alternative cell-phasecompartments that could follow may exclude each other at the single celllevel, but not at the cell population level, so that different subsetsof a population may follow different paths, with the distributiondepending on the strength of signaling events generated within thesimulation itself. Therefore, the simulation of the value of thisvariable could be modeled to represent the probabilistic distributions,independently of which subworkspaces are activated first following themechanistic approach. Kromenaker & Srienc (1991). Biotechnology andBioengineering 38: 665-67.

As shown in FIG. 29, If a cellular response results only inproliferation, the simulation of the population cell dynamics involvingbioPools of cells in different states, results in cells that keeptranslocating from bioPool to bioPool, each representing a different onefrom a discrete number of states, resulting in cycles through aclosed-loop set of cell-state bioPools, one of those. However, if theresponse results in cellular differentiation, it generates branching toa new closed-loop set of cell-state-pools.

FIG. 29 also shows how a cell populations approach bioModel can be buildto model the translocation of cells between the major states considered,as mechanistically represented by the defined subclasses of cell-phase,by creating and connecting a set of bioReservoirs and bioProcesses, asthe example detailed in the figure shows. Although the cell cycle is acontinuous one, it can be compartmentalized into functional cycleintervals whenever it is deemed useful to better represent the dynamicsimulation of the system. The initial state is the resting state,represented by the cellPool Cell-X1-Go (2901) of cells of type X1 (or indifferentiation stage X1) in the Go-phase. That cellPool may receiveinputs (2902) from various sources, represented by bioProcesses in whichcells are added to the resting pool after having been activated orcycling as the result of a variety of factors, and its outputs (2903)may contribute also to a variety of such bioProcesses, such as the onethat will be here described. While at Go-phase, if the cell is activated(2904) by a growth factor (2905), antigen or any other activatingstimulus, the cell enters the activated state or G1.1-phase (2906) andit is added to the corresponding bioPool (2911). From that bioPool(2911), all the cells may follow one of the two different options, ordifferent cells may follow different options for the next cell-phase,depending on the type and strength of the signals received, either: a)following the cell cycle (2908) if certain growth factor(s) (2909) aresufficiently present, resulting in cells X1 in G1.2-phase pathway (2910)and added to their corresponding bioPool, or b) following the celldifferentiation pathway (2912) if certain differentiation factor(s)(2913) are sufficiently present, resulting in cells X2 in G1.1-phase(2914) and added to their corresponding. Each of the cell types will bethen running in parallel, with their own set of bioReservoirs andbioProcesses. The same reasoning applies to the rest of the system, asdetailed in the figure, which will not be further explained, only to saythat at the end of the cell cycle, in the cellEngine (2916) that returnscells from M-phase (2917) to Go-phase (2918), has not only atranslocation function, but in addition, given that theStoichiometric-coeff of cell-X1-Go is 2 while the Stoichiometric-coeffof cell-X1-M is 1, it doubles the number of cells to be added to thecell-X1-Go-pool.

In fast growing organisms, the dilution factor resulting from cellgrowth is represented by m, while in slow growing cells direct enzymedegradation is more important, since the levels of many enzymes inanimal cells is controlled by the balance between enzyme synthesis anddegradation, called turnover. The synthesis of an enzyme is a zero-orderprocess, while the degradation usually has a first-order kinetics(proportional to the concentration of enzymes. It is very difficult tomeasure directly the rates of change of different cellular components atthe single cell level. A modeling framework requires at least data frommeasurements about the distributions of single-cell components ingrowing cell populations, and at the time of cell division and birth,which in some cases can be obtained by multiparameter flow cytometry.

Growth Rate in Terms of Net Rate of Protein Accumulation in Single Cellsin Each Phase of the Cell Cycle:

The growth rate in terms of net rate of protein accumulation in singlecells in each phase of the cell cycle can be calculated, for balancedgrowth cell-populations, based on the measured distributions ofsingle-cell protein content in the total cell population. Similarly, netrates of accumulation of any specific protein as well as any othercompound or property can be calculated whenever the properties and theirdistributions can be measured on a single cell basis, such as withmultiparameter flow cytometry with gating features, that permit directcorrelation with the cell-cycle phase. Kromenaker and Srienc (1991)defined balanced growth-cell populations as those characterized by: a)the total cell number increasing exponentially with time according to aspecific constant mean growth rate, and b) the total cell population andany of its sub-populations having a time invariant single-cell propertydistributions. They developed equations to represent the dynamics of agiven protein content range in an individual cell cycle, and afterderiving restrictions that apply to the rate constants and substitutingthose in the original equations, the obtained expressions for the growthrates for each individual cell cycle. The transformation of this modelinto the graphic language proposed in this invention, and theincorporation of those equations, is an example of a currently preferredembodiment of this invention, which is explained in more detail inExhibit M1.

The transition between different time-compartments may also be made afunction of cell size, or its equivalent total-protein content, both ofwhich are attributes of cell-bioModel. At the population level, thetransfer of cell-units from the bioPool of cells in G1.1-phase to thebioPool of cells in G1.2-phase is also based on the value of suchattributes. For example: the rate of increase in the number of cellswith a protein content greater than a given value p in G1, which may beestablished to delimit the G1.1-phase from the G1.2-phase compartments,equals the rate at which cells with a protein content greater than penter G1-phase+ the rate at which cells within G1-phase grow into theclass of cells with a protein content greater than p− the rate at whichcells with a protein content greater than p exit the G1-phase.

Additional sub-phases can be analyzed whenever appropriate landmarks canbe observed to define additional transitions. To represent a specificform of cell death, which is highly regulated and known as programmedcell death or apoptosis, a separate time-compartment (2430) is definedin this system, which is equivalent to a cell-cycle phase compartmentbut with the difference that has a dead end and does lead to a nextcompartment, but rather eliminates cells that have passed throughcertain specific combination of events. In addition, an additional termrepresenting the rate of exit from each cell-cycle compartment via othertypes of cell death may be introduced into each of the populationbalance equations.

In this system, in general it is assumed that cell division issymmetric, and that total protein is conserved at cell division. TheG1-phase is bounded by cell birth and initiation of DNA replication;S-phase is bounded by the initiation and completion of DNA; G2-phase isbounded by the completion of DNA synthesis and the initiation ofmitosis; and the M-phase is bounded by the initiation of mitosis andcell division. At balanced growth, each subset of cells in each cellcycle phase increase in numbers at the same specific growth rate as theoverall population. The rate of entry into the G1 phase is twice therate of exit from the M phase. Additional phase compartments can beadded whenever other transition landmarks can be measured, as well asthe cell distribution at each side of the transition. The following canbe used as the equations to model the rates: rG2G1=k* No/G20, rG1S=k*(No+G20+S0)/G10, rSG2=k* (No+G20)/S0, where No is the number of cell inthe total population at some reference time, and No=G10+G20+S0 at thistime. Kromenaker & Srienc 1991, Biotechn. Bioeng. 38:665-677.

The currently preferred embodiment of this invention deals withdifferent stages of cell differentiation, each representative of acharacteristic set of behaviors, as separate pools of cells. All thecells in a pool have identical behavior and, again, in the system ofthis invention when one refers to an instance of a cell with aparticular phenotype it does not mean an individual cell but rather apool of equal cells that is characterized by its behavior and also by acell-number and a cell-density. We have also considered previously caseswhere individual cells grow and differentiate in response to specificsignals provided when environmental factors activate specific receptorsthat initiate a signal transduction pathway within the cell. However,different cells respond by following diverse pathways in response to anidentical signal, and this specific response depends on the history ofthat cell. For example, erythroid cells could be allotted to three poolswith phenotypes characterized by the presence of two celldifferentiation surface markers CD34 (a glycoprotein) and CD71 (thetransferrin receptor): a) CD34⁺ include most immature erythroidprogenitor cells; b) CD71^(low) includes intermediate stages; and c)CD34⁻ CD71^(high) includes most mature erythroid progenitors. Each ofthis populations have different predominant form of the erytropoietinreceptor, and respond in different ways to erytropoietin: CD34⁺ expressa truncated form of the receptor and respond by proliferation, whileCD34⁻ CD71^(high) respond by differentiation and are protected fromapoptosis or programmed cell death (Nakamura et al., Science 257,1138-1141, 1992). In the currently preferred embodiment of thisinvention, the particular history of each cell pool is reflected in thespecific bioModels as determined by the particular procedures to befollowed, which are encoded in the corresponding attributes of thebioObjects that are components of that cell's specific bioModels.

Navigation and General Modes: Exploring and Queering the Virtual Models

Menus and Panels

The domain-menus associated with the Navigation Mode and the GeneralMode, the default user mode for users with no modeler or developerrights, comprise the headings: “Help & Mode Menus” (1601), “StructureLibraries” (1619), “Pathway Libraries” (1628), previously discussed, and“Panels”, which options include panels of various types used to accesstasks that are not initiated from one single bioReservoir or bioProcess,or their components, but which are either application-wide or includingmore that one starting points.

The Initialization Panel is used to request the initialization tasksassociated with each of the buttons. Here we will discuss the methodsassociated with each of those buttons. An initially rule (Table 97)causes this panel to be automatically displayed when the program isstarted. Selecting the “Menu” button calls the basis-menu-head-callback(Table 98), which causes the creation of the specific domain-menus, bycalling other procedures defined within the Shell and, depending on thecurrent value of the user-mode of the window from which the request hasbeen made, it passes as argument the name the menu-structures specificfor that mode.

Selecting “References Scroll” displays the subworkspace of theReferences Panel, discussed below. Selecting “Structure Queries” createsa clone of Master-General-Structure-Query-Panel and displays itssubworkspace discussed in more detail below in relation to FIG. 30.Selecting any of the “Experiment Setup #” displays the subworkspace ofthe corresponding “Experiment Setup Panel”, which are variously modifiedclones of the Master-Experiment-Setup-Panel, one of which will bediscussed in more detail under the Simulation Mode heading in relationto FIG. 35, since part of the capabilities provided within this type ofpanels can be used under the General Mode, and all the capabilities canbe used in Simulation Mode.

Initialization

Selecting the “Navig Init” button calls the navig-init-callback, whichcalls the navig-init-proc (Table 99) resulting in the activation of thesubworkspaces of all bioProcesses and bioReservoirs and thensuccessively calling the following procedures:

-   -   the br-initialization-proc (Table 100) sets the appropriate        values of the Master-bioReservoir (1208) attribute of all        bioReservoirs, highlights the flag-color region of the icon of        those bioReservoirs that have Warnings, sets the appropriate        values of the Ref-bioprocess (2235) attribute of all        bioPool-posts of all bioReservoirs, and establishes all the        appropriate “a-down-bioProcess-of” and “an-up-bioProcess-of”        relations (Table 75) between bioProcesses and bioReservoirs,        making then those changes permanent (note that relations are        transient in this Shell, and therefore they are lost when the        application is restarted);    -   the bp-initialization-proc (Table 101) changes the color of the        type-color region of the icon of each bioProcess to equal that        of the bioengine it encapsulates, sets the appropriate values of        the Master-bioprocess (1405) attribute of each bioProcess,        highlights the flag-color region of the icon of those        bioProcesses that have Warnings, sets the appropriate values of        the Ref-bioreservoir (2234) attribute of all bioRole-posts of        each bioprocess, establishes “an-upstream-bioReservoir-of” and        “a-downstream-bioReservoir-of” relations (Table 75) between        certain pairs of bioReservoirs that are separated only by one        bioProcess, and establishes “an-upstream-bioProcess-of” and        “a-downstream-bioProcess-of” relations (Table 75) between        certain pairs of bioProcesses that are separated only by one        bioReservoir;    -   the downstream-chaining-proc (Table 102) completes the        downstream chaining process by extending those relations to        distant bioReservoirs and bioProcesses, by establishing the        appropriate “a-downstream-bioReservoir-of” relations (Table 75)        between any bioReservoir A and each other bioReservoir that is        positioned downstream of A in any pathway, and establishes all        the appropriate “a-downstream-bioProcess-of” relations between        any bioProcesses B and each bioProcess that is positioned        downstream of B in any pathway;    -   the upstream-chaining-proc (Table 103) completes the upstream        chaining process by extending those relations to distant        bioReservoirs and bioProcesses, by establishing the appropriate        “an-upstream-bioReservoir-of” relations (Table 75) between any        bioReservoir A and each other bioreservoir that is positioned        upstream of A in any pathway, and establishes all the        appropriate “an-upstream-bioProcess-of” relations (Table 75)        between any bioProcesses B and each bioProcess that is        positioned upstream of B in any pathway;    -   the biomodel-initialization-proc (Table 104) scans each bioModel        for other encapsulated bioModels, bioProcesses and        bioReservoirs, going down the subworkspace hierarchy, and        establishes the following relations between any combination of        them: bm-contained-in between a bioModel and a bioModel,        bp-contained-in between a bioProcess and a bioModel, and        br-contained-in between a bioReservoir and a bioModel (Table        47). Those relations are important for all further processing,        and are used by the newly defined query procedures, navigation        procedures, and simulation procedures described below.

A rule (Table 119) monitors the application at run time, and wheneverthe user moves a bioModel the rule starts the biomodel-ws-check-proc,which checks whether the bioModel has been moved to a differentworkspace, in which case it calls the remove-biomodel-containing-proc(Table 119), to brake the old relations that no longer apply, and callsthis biomodel-initialization-proc (Table 104) to establish the newrelations. The upstream and downstream relations are also created andbroken at run-time by a set of rules (Table 76) and a parallel set forbioReservoirs, not shown) that monitor whenever any such chainingrelation is newly established or broken, and in response to such eventsthey establish or brake other relations, according to similar criteria,which trigger the same rules for a chain of other bioReservoirs orbioProcesses. The use of those rules makes sure that if a modeler oruser deletes a bioReservoir or bioProcess that is part of one such chainof relations, then the chain is broken between the elements of bothsides on the breaking point. Such sets of rules are used forestablishing relations whenever new connections between bioReservoirsand bioProcesses are made by the modeler.

The “Add Query” button is to be selected only after the “Navig Init” wasbeen successfully concluded. If changes to the database have been madeby the modeler since the “Navig Init” was last concluded, or if theapplication has been restarted, then the “Query Init” button should beselected. The common purpose of both buttons is to organize knowledgeabout the structure of all the bioEntities in the application, and tocreate a set of structures to hold that knowledge, to be used any timethat the user request a predefined query that involves that kind ofknowledge. Selecting the “Add Query” button calls the add-query-callback(Table 105), which calls the two procedures that follow. Selecting the“Query Init” button calls the query-init-callback (Table 106), whichcalls the navig-init-proc (Table 99) and the two procedures that follow:

-   -   the et-initialization-proc (Table 107) scans the loaded        application for every copy of each named complex-bioEntity, and        then assigns a value to the Id attribute of each such copy that        is equal to the name of such bioEntity complex-bioEntity ended        by the copy number. Copies are numbered consecutively, in the        order found, with the original being -0;    -   the init-query-tables-proc (Table 108) activates the        subworkspace of the Query-Arrays-Bin and deletes any old array        upon it, and also deletes any old list upon the Query-Lists-Bin,        and then calls the following procedures:    -   the find-bioentity-definitions-proc (Table 109) scans the        Bioentities-Defs-Bin, which contains all the object definitions        of all the subclasses of the class bioEntity, and for each of        those subclasses it calls the create-query-array-proc (Table        110), which creates a query-array, sets its Major-class        attribute equal to the name of the superior-class of such        subclass, sets its Ref-component-class attribute equal to the        name of such subclass, and sets its Name attribute equal to the        name of such subclass followed by the ending -query-array, and        transfers such query-array to the Query-Arrays-Bin at a location        specific for each superior-class;    -   the create-query-lists-proc (Table 111) creates a query-list to        correspond to each query-array in the Query-Arrays-Bin, and        transfers the list to the corresponding location upon the        Query-Lists-Bin, sets its Ref-array attribute equal to the name        of such array, and sets its Ref-component-class attribute equal        to the Ref-component-class attribute of such array; then, for        each of those lists and for each bioentity of the subclass named        by the Ref-component-class of such list, it calls the        find-named-bioentities-with-component-proc (Table 112), which in        turn, if such bioEntity has a name it directly calls for such        bioEntity the procedure that follows, otherwise it calls first        the find-named-bioentity-proc (Table 113) to scan the hierarchy        of bioentities superior to such bioEntity, until one is found        with a name, in which case, it now calls for the named bioentity        the procedure that follows:    -   the seek-bioentity-copies-proc (Table 114), inserts the argument        bioentity in such list, and then scans the application for any        copy of such bioentity, and if any is found then it loops back        for such bioEntity by calling the        find-named-bioentities-with-component-proc (Table 112) mentioned        above, which will repeat the cycle back to this procedure, as        described, until the various loops for each bioEntity of every        list are completed.

When this process is completed, the list for each bioEntity subclasscontains, with no duplicated elements, all the named bioEntities thatencapsulate one such bioEntity, either directly or by reference. To givean example, that means that if a named protein instance-A encapsulates aprotein-motif instance-B, then every named protein complex-instance-Cthat encapsulates an unnamed copy of instance-A (which does not itselfencapsulate a copy of instance-B, but rather points to itsmaster-bioentity, instance-A, which encapsulates instance-B) will alsobe included in the list of all bioEntities that encapsulate aprotein-motif. After all such lists are completed, it calls thefollowing procedures:

-   -   the complete-query-table-proc (Table 115) simply transfer the        values of the elements from each of those lists to their        corresponding arrays, by fist setting the length of the array to        match the length of the list, and then setting the text of the        initial-values attribute of each array to equal a text string        that mentions all elements of the list separated by commas, as        illustrated in the example listed in Table 116, which shows a        pair of corresponding instances of a query-list and a        query-array of the subclass sup-et-array, which list named        instances of bioEntities that contain an a-helix-motif, which in        this small demo application consists only of a few        master-structures from the library. In the table of attributes        listed, the initial-values attributes is displayed, and the list        of elements of either the list or the array can be displayed by        selecting the “describe” option of their menus;    -   the create-auxiliary-query-arrays-proc (Table 117) adds a few        empty arrays corresponding to the no-selection options of each        query panel, which are simply programming aids, and to conclude        it deactivates and activates again the subworkspace of the        Query-Arrays-Bin for the purpose of initializing the        query-arrays upon activation, which means that the elements of        the array take the values given by the set initial values.

The “Icons Init” button calls the init-icons-callback (Table 118), whichfunction is not essential for the functioning of this system, but whichprovides a very useful cosmetic function, by realigning the tracers inthe subworkspaces of bioReservoirs and bioProcesses and making theirconnections invisible. Selection of this button is not necessary everytime the application is started, and it can be selected any timethereafter, when problems are detected, in any mode other thanSimulation Mode (where those subworkspaces may be deactivated). The sameeffect is achieved for individual bioReservoirs or bioProcesses byslightly moving and repositioning their bioPool or bioEngine,respectively, which triggers their respective icon-movement rules, asdefined in Table 79, which also apply to repositioning the bioRole-postsany time a bioReactant or bioProduct is moved.

Selecting the “Init All” button calls all-init-callback (Table 118b),which calls all the initialization procedures mentioned above, andselecting the “Hide” button calls the hide-workspace-callback, whichhides this Panel.

Navigation

In this invention, navigation refers to the domain-specific tasks ofdisplaying and hiding either related bioObjects or their subworkspaces.The concept of related object include various types of associations,including some that are permanently stored in the knowledge-base, asdefined by either graphic or distant connections, or containment insubworkspaces at any level in the hierarchy, and some that are transientsuch as relations, which are established and may be broken at run-time(note that in the system of this invention it is also possible to storerun-time versions or snap-shots of the application, which also includetransient objects, such as relations). Navigation tasks may be performedin any mode, but Navigation Mode has that name because the behavior ofcertain object classes, including the classes bioReservoir, bioProcess,bioModel, and complex-bioEntity, is restricted to do just that. Thismeans that a navigation task is automatically performed upon clicking onthe instances of any such classes, instead of displaying a menu withvarious other options as well, and therefore all those other tasksoffered by the other options are not available in this mode. Navigationtasks are usually simplified in this filing by expressions like“selection of A starts proc-B, which displays C”, but in reality theseprocesses do more than that in this invention: selection of A invokesproc-B, which takes as arguments A (the item) and the current window,and causes C to be either displayed or hidden on the current window,depending on the value of the Toggle-state attribute of A, and inaddition, the icon appearance of A is configured, switching between itspressed or depressed configuration, respectively, and the value of theToggle-state attribute of A is alternated between on and off. In suchcases, A may be either a button or any of the bioObjects that has asubworkspace, which in this regard behave similarly. FIG. 24 will bedescribed to summarize some of those navigation tasks when in NavigationMode, while also referring to the definitions of the methods involvedlisted in the Tables. Any navigation task that is directly performed inthis mode may be performed in any other mode when selected from themenu. Selecting any bioProcess (2410) in Navigation Mode impliesselecting its “details” option that starts the details-bp-proc (Table120), which displays its subworkspace (2411), in the same way thatselecting any bioReservoir (2414) implies selecting its “details” optionthat starts the details-br-proc (Table 121), resulting in itssubworkspace (2415) being displayed or hidden, depending on whether thevalue of the Toggle-state is hide or show, respectively.

When selecting the “details” option of any bioProcess that has amaster-bioprocess but has no subworkspace, conditions that when combinedare characteristic of a copy bioProcess used in the creation ofPathways, causes such first procedure to call the bp-master-details-proc(Table 120), which in this case displays or hides the subworkspace ofthe original (master) bioProcess, in addition to configuring the iconsof both the original and the copy bioProcess to their pressed ordepressed appearance, respectively. In a similar way, when selecting the“details” option of any bioReservoir that has a master-bioReservoir buthas no subworkspace, characteristic of a copy bioReservoir, causes thefirst procedure to call the br-master-details-proc (Table 121), which inthis case displays or hides the subworkspace of the originalbioReservoir, in addition to configuring the icons of both the originaland the copy bioReservoirs to their pressed or depressed appearance,respectively.

BioEngines do not have subworkspaces by default, but the modeler cancreate one to store tabular functions. In such cases, a “show- sw”option is available, and selecting such bioEngines in Navigation Modeimplies “show-sw”, which starts the show-bioengine-sw-proc, whichdisplays or hides its subworkspace and toggles the configuration of itsicon.

The behavior of complex-bioEntities in Navigation Mode is similar, asshown in FIG. 18, where selecting any bioEntity (1808, 1813, 1815, 1817,1819, or 1821) implies selecting the “details“option, which starts theet-details-proc (Table 122), which displays or hides its subworkspace(1809, 1810, 1816, 1818, 1820, or 1822, respectively) and toggles theconfiguration of its icon. The combination of this option with thego-to-sup-obj -button (1826) upon each subworkspace allows to navigateup and down in their workspace hierarchies.

Selecting any bioProduct-post (711) or any bioReactant-post (703, 707),in General, Navigation, or Simulation Modes, implies selecting its“show-br” option, which starts the rolepost-show-br-proc, (Table 123),which displays the subworkspace (714 or 705) of the bioReservoir namedby their Ref-bioreservoir attribute. Similarly, selecting anybioPool-r-post (704) or any bioPool-p-post (712) implies its “show-bp”option that starts the poolpost-show-bp-proc (Table 124), which displaysthe subworkspace (702) of the bioProcess named by its Ref-bioprocessattribute. This option is only available in the menu when thebioPool-post has a name. Selecting the go-to-sup-obj-button (1825) onthe subworkspaces of each bioObject displays its superior object, whileselecting the hide-sup-ws-button (x) hides its workspace. Thecombination of those capabilities allows to follow all the distantconnections through the pathways of bioReservoirs and bioProcesses, andalso up and down in their workspace hierarchies.

Selecting any model-box (1218, 1236, or 1237) in General, Navigation,and Simulation Modes, implies selecting its “show-sw” option, whichstarts the show-model-box-sw-proc, which displays or hides itssubworkspace (1221) and toggles the configuration of its icon. Thisoption is used to access the model-block (1222) upon that subworkspace.

The “bioentity” option (Table 125) appears in the menus of bioReservoirs(1803), bioReactants and bioProducts (1525) only when the Ref-bioentityattribute of the bioReservoir has a value different from the defaultvalue of none, and upon selection shows or hides the subworkspace of thebioEntity named. The Ref-bioentity attribute is defined only for theclass bioReservoir and the menu options of bioReactants and bioProductsrefer to that attribute when connected. However, this attribute can bedefined for those other classes as well, allowing access to a bioentityindependently of a bioReservoir.

Structure Related Queries

There are two major groups of Queries: a General-Query is based only onstructure and is application wide, while a BR-Query is in reference tothe bioReservoir from which it was initiated. The Query Panels are builthierarchically, with each radio-button from the first Selection Panelleading to another more specific Query Panel, where now the user cancompose a selection and then initiate the Query. The word Panel isfrequently used in a more general sense to refer to the subworkspace ofan instance of the class query-panel.

A General-Query may be requested by selecting from the “Panels” menuhead the “Structure Queries” option, which calls thecreate-general-structure-selection-panel-callback (Table 127), whichclones the Master-General-Structure-Query-Panel, stores the clone in theTemporary-Panel-Bin, configures its radio-box with the aid of theset-radio-box-id-proc(Table 128) and displays its subworkspace. The usermay now use such Panel to select any radio-button from its radio-box,which calls the select-general-structure-selection-panel-callback (Table129) with such button as one of its arguments, which in turn: a) getsthe value of the radio-button selected, and depending on the value ofthe On-value attribute of such button, clones the correspondingmaster-panel, then calls the create-general-query-panel-proc (Table 130)with such value and the new panel among its arguments, which completessuch panel by scanning the panel for the presence of specificallylabeled radio-boxes (related sets of radio-buttons) and configuring theradio-boxes with the set-radio-box-id-proc (Table 128), and b) displaysthe subworkspace of the new panel.

The user may now use that Query Panel to select any combination of oneradio-button per radio-box and then selecting the “Query” button callsthe query-general-structure-callback (Table 131), which calls first thequery-general-structure-proc (Table 132), which scans such panel for thepresence of specifically labeled radio-boxes and then callsfind-specific-array-proc (Table 133), with such label as one of itsarguments, to find the value of the selected radio-button and thematching array within the Query-Arrays-Bin (those arrays are createdduring the Query Initialization process, as described in theInitialization section above). An auxiliary scroll-text-list is createdand, if only one radio-box is present in the Query Panel, then theelements of the corresponding array are transferred to such list. If tworadio-boxes are present in the Query Panel, then two such arrays shouldbe found, in which case the merge-two-structure-lists-proc (Table 134)is called, which scans those arrays to find the common elements, whichare transferred to such scroll-text-list. A specific text-string isdeveloped to include references to the selected options and to theoutcome of the search, which is then given as a value to a free-textstructure, which is displayed as a heading for the results of thesearch. The callback calls then thecreate-general-query-output-panel-proc (Table 135) with suchscroll-text-list and free-text among its arguments, which creates anoutput panel by cloning the Master-Molecular-Query-Output-Panel, thencreates a scroll-area to display the elements of such scroll-text-list,and transfers to the subworkspace of such output panel both thefree-text and the scroll-area listing the results of the search, whichis them displayed. The user can now use such scroll-area tointeractively display or hide the structure of any number of bioEntitiesnamed by the options listed, as described below.

Pathway Related Queries

FIG. 30 illustrates an example of one of the several types of predefinedPathway Related Queries that the user can perform by just selecting thedesired buttons from the options offered in the panels (3004, 3006). Allthe searches generated from this type of panels include bioReservoirslocated anywhere within the pathways that are either upstream ordownstream, depending on the selection, of such initial bioReservoir(3001), and also the bioEntities referred to by any of thosebioReservoirs. Those upstream or downstream queries can be furtherrestricted by the type of roles that those bioReservoirs play indifferent bioProcesses, as defined by the major classes of bioReactantsto which their bioPools are distantly connected, which is referred hereas function-related search. In complex queries of mixed type, suchbioEntities can be further restricted to those encapsulating anyparticular component, similar to the Structure Related Queries describedabove. In such cases, the methods pertinent to the pathway search areapplied first to generate the pathway-related set, followed by thefunction search, which is applied only to the pathway-related set andgenerates the function-related set, and finally the structure search,which is applied only to the function-related set, or to thepathway-related set if no function search has been selected, andgenerates the structure-related set. The structure search applies onlyto the bioentities for the purpose of displaying the results, in thesense that all bioReservoirs that meet the selected pathway, andoptionally function, requirements are listed in the scroll-area listingthe bioReservoirs, regardless of whether they meet any of the bioEntityrelated criteria. This implementation is currently preferred because theRef-bioentity of a bioReservoir is an optional attribute, and it isexpected that many of the bioReservoirs will not have a correspondingdefined bioEntity. This alternative provides a more complete search interms of relative position and function of bioReservoirs, without beinginfluenced by the implementation of an option.

These types of Query may be requested in two different ways: a) from abioReservoir (3001) by selecting from its menu (3002) the “query panels”option (3003); or b) from the subworkspace a bioReservoir by selectingthe query-tracer (Q) connected to the bioPool. A query-tracer is asubclass of list-tracer (Table 30), which selection implies selectingthe tracer's “show” option. Each of those options starts thecreate-br-related-selection-panel-callback (Table 138), which creates aclone of Master-BR-Molecular-Query-Panel, configures it, and displaysits subworkspace (3004), the Pathway Query Selection Panel. Configuringthis panel and any other panel that follows during the processing ofbr-related queries always includes setting the value of the Related-itemattribute of the panel equal to the name of the bioReservoir from whichthe query was initiated, and this name is passed along when a new panelis originated from such panel. That is, any callback invoked from abutton of a panel, takes the name of the bioReservoir from theRelated-item of the panel upon which subworkspace it is located, andpasses that name as an argument when calling other procedures.

The user may now use that Pathway Query Selection Panel to select anyradio-button (3005) from its radio-box, which calls theselect-br-related-query-panel-callback (Table 139) with such button asone of its arguments, which in turn: a) gets the value of theradio-button selected, and depending on the value of the On-valueattribute of such button, clones the corresponding master-panel, thencalls the set-br-related-query-panel-proc (Table 140) with such valueand the new panel among its arguments, which configures and completessuch panel with the set-radio-box-id-proc (Table 128), and displays thesubworkspace (3006) of the new panel, a Pathway Query Panel. This panelis composed of: a) the title (3022), which specifies the type of searchbeing made from that panel and names the bioReservoir (3023) that is thepoint of reference for the search; b) the set of radio-buttons (3024) ofthe radio-box labeled “direction”, defining the two possiblealternatives; c) the set of radio-buttons (3025) of the radio-boxlabeled “function”, which defines the possible alternatives availablefor function, which in this case we only show a small but importantsubset that is of high relevance to scientists; d) the set ofradio-buttons (3026) of the radio-box labeled “motifs”, which definesthe possible alternatives available for subclasses of protein- motif.Many other possible sets of radio-buttons, such as those of theradio-box labeled “location”, which defines the possible alternativesavailable for subcellular compartments, are not shown.

The user may now use that Pathway Query Panel to select any combinationof one radio-button per radio-box. Selecting the “Upstream” option(3007) calls the upstream-query-lists-callback, which calls theupstream-function-query-lists-proc. Selecting the “Downstream ” optioncalls the downstream-query-lists-callback (Table 141) and then thedownstream-function-query-lists-proc, (Table 142), which do thefollowing: a) it first calls repeatedly the create-br-query-list-proc(Table 143) to create a set of two lists per each predefined type offunction, one to contain names of bioReservoirs and the other the namesof bioEntities; b) then, it loops over all bioReservoirs that areupstream (or downstream) and scans for their connections to certainclasses of bioReactants, which define their function, and enters theirname in the corresponding one of those bioReservoirs lists, for example,if the bioPool of a bioReservoir is connected to both a kinase.r and atranscription-factor.r, then the name of such bioReservoir will be addedto each of the two corresponding lists, so that a bioReservoir may benamed in more than one function list, but is not duplicated within onesingle list; and c) for each pair of one of those bioReservoirs listsand its corresponding bioEntities list, it calls thefill-br.et-list-proc (Table 144), which scans all the bioReservoirs inthe fist list for the value of their Ref-bioentity attribute, which ifavailable is added to the second list. All those lists, to be used bythe procedures described below, are associated by a relation to thepanel from which they are created, are valid only for the bioReservoirgiving the related-item of that panel, and are deleted when the panel isdeleted.

The user can now select any combination of one radio-button perradio-box, such as receptors (3008) and β-strand-motif (3009), and thenselect the “Query” button (3010) to complete the processing and displaythe results of the query (Table 145), which first obtains the values ofthe selected radio-buttons of the “direction” (3024) and “function”(3025) radio-boxes, and then calls the get-br-function-list-proc (Table146) with those values among its arguments, which are used to obtain andreturn the corresponding set of two lists from the bioReservoirs listsand bioEntities lists created and filled in the previous processing.Such bioReservoirs list is used to directly pass its values to thebioReservoirs scroll-area (3013) for final display, while suchbioEntities list is used as the basis for the complex further processingthat follows. The callback scans now the Panel to find whether there arestructure related radio-boxes, such as the “motifs” radio-box in thisexample, in which case it calls the query-br-structure-lists-proc (Table147) with those previous values and the bioentities list among itsarguments, which does a complex processing as following: a) it finds thelabel of such structure related radio-box(es) and callsfind-specific-array-proc (Table 133) to find the value of the selectedradio-button for such box(es), such as β-strand-motif (3009), and itsmatching array(s) in the Query-Arrays-Bin (as described for StructureRelated Queries); b) if there is only one structure related radio-box,like in FIG. 30, then it calls merge-br-function-structure-proc (Table148), or if there are two structure related radio-boxes it callsmerge-br-function-structure-structure-proc (Table 149), passing amongits arguments the values of all selected radio-buttons, as well as thecorresponding bioEntities list filled earlier, and the array(s) nowfound. These procedures create a new list, the bioEntitiesscroll-text-list, and then, taking into consideration the type and valueof the arguments: a) they select a text specific for each situation, tobe displayed as a title for the results, b) they call thebr-fill-etl-list-proc (Table 150) or the br-fill-double-etl-list-proc(Table 151), which enter the common elements of both the bioentitieslist and the array(s) in the scroll-text-list, and c) they return thetext and the scroll-text-list to the previous procedure from which theywhere invoked, which returns them to the callback.

The callback passes such text to a free-text structure, and finallycalls the create-double-query-output-panel-proc (Table 152) with thebioReservoirs list mentioned, the bioEntities scroll-text-list, andtheir two corresponding free-texts among its arguments, which creates anoutput panel by cloning the Master-Molecular-Query-Output-Panel andstores it in the Temporary-Panel-Bin, then transfers the two free-textsto it, creates two scroll-areas to display the elements of each of thoselists in a scrollable and interactive format, and calls thecomplete-be-panel-proc and complete-br-panel-proc (Table 152), whichconfigure those scroll-areas (3013, 3017) and transfers them to thesubworkspace, which is them displayed (3011).

The user can now use the Pathway Query Output Panel (3011) so created toscroll through the lists of bioReservoirs (3013) and bioEntities (3017)that are the output of the query. Selecting and unselecting any optionof such scroll-areas allows to interactively display or hide thesubworkspace of the named structure by calling thequery-message-selection-proc or the query-message-unselection-proc(Table 136). Each of the titles (3012) are directly related to thescroll-area below them and vary with the results of each part of thesearch, and they may omit naming those groups of buttons where notselection was made, or indicate that some search or part of the searchwas empty. The scroll-area (3013) on the top shows the bioReservoirsthat meet the direction and function requirements, which are those namedby the options listed, and selecting any of its options (3014) displaysthe subworkspace (3015) of the named bioReservoir. The scroll-area(3017) on the bottom shows the bioEntities that meet the combination ofdirection, function and structure requirements, as selected, which arethose named by the options listed, and selecting any option (3018)displays the subworkspace (3019) of the named bioEntity. Thosestructures displayed can be used to navigate in any way previouslydescribed, including up and down the pathways from bioReservoirs (3015)to bioProcesses (3016) and so on, from bioReservoirs or bioReactants orbioProducts to their bioEntities as shown in FIG. 18, or up and down theworkspace hierarchies, by combining the variety of tools and methodspreviously described. As before, all the Pathway Query Selection Panels,Pathway Query Panels, and Pathway Query Output Panels are dynamicallycreated and transient, and when the search is completed they are nolonger needed and they are deleted, as well as their associated lists,by selecting the “Delete” button (3027), which calls thedelete-query-panel-callback.

More complex queries can be performed with an additionalMaster-BR-Molecular-Query-Panel with four additional options, to includequeries previously described in combination with an additionalconstraint criteria, the location of the bioReservoirs selected by theprevious criteria within the different cell compartments. Selection ofany of those new options displays the corresponding Query Panel, and inthis new set of Panels, the “Downstream” and “Upstream” radio buttonsare associated instead with the downstream-function-location-callback(Table 153) and upstream-function-location-callback, respectively, whichcall the downstream-location-query-lists-proc (Table 154) or itsupstream equivalent. Those procedures call some of the procedurespreviously described and also call the find-compartment-proc (Table155). The user may additionally select any combination of oneradio-button each from the radio-boxes offered in each particular panel,and then selecting the “Query” button now calls thequery-br-related-location-callback (Table 156), which depending on theboxes available on the particular Panel, calls one of an alternative setof procedures, which call other procedures, as specified. The reader isfurther referred to the listings in Tables 157 through 169 for thedetails of such complex processing that is difficult to describe, andwhich uses a similar approach and methods as those previous described tocreate a new set of lists and to merge lists with bioReservoirs meetingthe different criteria.

The underlying shell loads the desired application modules on memory forrun time operations, but it is able to merge and remove modules whilethe system is running. Since the inference engine's reasoning and searchspace is limited to those modules that are loaded, it is necessary tocreate a mechanism to allow for searches in modules that are not yetloaded on memory. This is accomplished by maintaining in the repositorymodule an object, called the query-arrays-bin, which holds in itssubworkspace a set of item-arrays for intelligent dynamic merging andremoval of the modules required at particular times, particularly whensearching through the bioEntity-module and in order to allow forsearches in a modularized application. Those contained-in-module arraysare built following similar methods as those described here forbioModels. The difference is that a new set of relation is defined, ofthe series -contained-in-module, and an initialization procedure thatloops over all the workspaces of each loaded module, finding out thevalue of their assigned-module, and then looping over all the bioModelLibraries upon each workspace, and over all the bioModels upon eachbioModel Library, and the continuing with the methods described in theprevious section.

Interactive Lists and Pathways

In addition to the various query methods previously described, thisinvention provides several other tools and methods to enable the user toextract the knowledge build entered into the system by the modeler, inaddition to the new knowledge created by applying the methods of thisinvention to analyze and integrate the knowledge provided by themodeler.

One of those capabilities is provided by the “list copies” menu option(1825) defined for the class complex-bioEntity, which upon selectioncalls the et-list-copies-callback (Table 170), which creates ascroll-text-list and then calls the list-local-bioentities-copies-proc(Table 171), which scans all the bioEntities of the same major subclassas the one bioEntity from which the request originated to find if themaster-bioentity of any of then matches the name of such bioentity, inwhich case the value of the Id attribute of each of those copies isadded to the list. If there is any element in that list, then thecallback creates an Output Panel by cloning theMaster-Local-Bioentity-Copy-Panel, creates a specific title and ascroll-area, which are then added to the Panel and configured, andfinally the Panel is displayed. This Panel looks like the Query OutputPanel (3017) discussed above, with a different title. Selecting andunselecting any option of such scroll-area callet-copies-message-selection-proc or theet-copies-message-unselection-proc (Table 172), which interactivelydisplays or hides the subworkspace of the structures referred to bytheir Id, rather than by name. This also provides an example of how, ingeneral, instances of bioEntities as well as bioReservoirs, bioProcessesand bioModels, or any other structure, can be referred to by the valueof any attribute, rather than by their names, which have to be uniqueand sometimes inconvenient, but they can be avoided. Referring toattributes, defined for such or any other purpose, also allows to referto groups of instances within a class, without having to refer to eachindividual member of the group.

Another novel teaching of this invention is the capability of creatinglists (3107) of downstream and upstream bioReservoirs and bioProcesses.By selecting the icon (3208) of any of those lists, the user can displayon a workspace (3209) the elements (3221) of that list, which arepointers to all the bioReservoirs (3210) or bioProcesses that meet thecriteria set for each specific list, and each pointer further allows toeither display the table of attributes of such object, or displays theobject itself upon its workspace (3210), as described in more detaillater (FIG. 32). Navigation can be now initiated from those objects aswell as any other tasks described in this invention. This capability isaccessible through the “show lists” options from the menus ofbioReservoirs (3220) and bioProcesses (3103), which appear in the menusonly when they are named, as well as from the list-tracers in theirsubworkspaces.

As illustrated in FIGS. 31 a and 31 b, chaining-tracers (Table 30) areiconic programmed objects connected to a bioPool (L) or to a bioEngine(L, 3105), where they are used to control the dynamic creation anddisplay at run-time of a set of such lists of either bioReservoirs orbioProcesses that are either upstream or downstream of the bioReservoirupon which subworkspace such list-tracer is located. The “show” option(Table 31) is defined for the class list-tracer and is inherited by allits subclasses, including BR-chaining-tracer and BP-chaining-tracer.Selecting any such list-tracer by the user implies “show”, which startsthe list-tracer-handler-proc (Table 31), which configures the buttonsand depending on the subclass of list-tracer, calls either theBR-chaining-proc (Table 173, also started upon selection of the “showlists” (3220) option of the bioReservoir), or the BP-chaining-proc(Table 174, also started upon selection of the “show lists” (3103)option of the bioProcess). The major actions performed by both of theseprocedures comprise: a) if the list-tracer already has a subworkspace,then it is displayed with its contents, otherwise a subworkspace for theBR-chaining-tracer or BP-chaining-tracer, respectively, is created bycloning the subworkspace of the prebuilt master structuresBR-Chaining-Lists or BP-Chaining-Lists, respectively, which in bothcases contain two sets of four predefined lists each, one set (3107) ismeant to be used in any user mode, while the second set (3108) is to beused in simulation mode and contain elements from the first set thathave been activated as a result of their inclusion in a simulation model(to be described below), and then such lists are displayed; and b) thoselists are populated having as point of reference the bioReservoir (3201)or bioProcess (3101) from which they were requested, by using for eachlist of the set the following criteria: the elements of DBPL and SDBPLare downstream bioProcesses, the elements of UBPL and SUBPL are upstreambioProcesses, the elements of DBRL and SDBRL are downstreambioReservoirs, and the elements of UBRL and UDBRL are upstreambioReservoirs.

A further novel teaching of this invention is the capability todynamically generate displays of interactive pathways, where thesepathways comprise a chain of downstream, or upstream, bioReservoirs orbioProcesses, or both, orderly arranged in a graphic format withconnections drawn between them to indicate those that are adjacent. Byvisually following those connections, the user can follow the pathwaysthat indicate a dependency relationship between those bioReservoirs orbioProcesses or both. The capability to display interactive downstreampathways is accessible from several different types of structures: a)from an individual bioProcess (3116), in which case such bioProcess isthe point of reference; b) from a Navigation Panel (to be discussed inconjunction with FIG. 32), in which case a bioReservoir is the point ofreference; and c) from an Experiment Panel (to be discussed inconjunction with FIG. 35), in which case one or more bioReservoirs arethe points of reference.

As illustrated in FIG. 31 a, now we will refer to accessing suchcapability from an individual bioProcess, or from icons in itssubworkspace that have such specific functions, to display eitherupstream or downstream pathways, and in either case the bioProcess isthe point of reference. Up-path-tracer (3124) and down-path-tracer(3117) are iconic objects (Table 28) located upon the subworkspace(3104) of a bioProcess (3101) used to control the dynamic creation atrun-time of a graphic display of such interactive upstream (3110) ordownstream (3118) pathway, respectively, from the bioProcess from whichit was requested. The “show” option starts the path-tracer-handler-proc(Table 29), which depending on the subclass of path-tracer calls eitherthe draw-up-pathway-proc (Table 175, also started from the “up pathway”option 3109 from the bioProcess) or the draw-down-pathway-proc (similarto the one above but downwards, also started from the “down pathway”option (3116) of the bioProcess. The major actions performed by each ofthese procedures comprise:

a) it creates a subworkspace here called Upstream Pathway Display (3110)for the up-path-tracer (3124) by cloning the subworkspace ofMaster-Up-Pathway, which contains a set of prebuilt auxiliarystructures. The text of the title (3111) is changed to refer to suchbioProcess. The x-pos and y-pos (3112) are two integer-parameters (Table3) used to keep track of the most distant bioProcess added to theDisplay and which: i) are used by the program to compute the position ofthe next bioProcess to be added, after which their values are updated,ii) are used by the program to be compared to defined threshold valuesthat, when reached as the display dynamically grows, trigger a reductionin the size of the display, and iii) may be used also by the user toread the size of the Display, which may in occasion get very large, byobserving their value as displayed in digital form. The set of resizebuttons (3113) allow the user to resize the Display at will;

b) it creates a copy of such bioProcess, by cloning it and deleting itsworkspace, and then transfers the copy to the Pathway Display at aspecified position (3114), and displays the Pathway Display on thewindow from which it was invoked; and

c) it calls the create-local-up-bp-proc (Table 176) with such originalbioProcess and its copy among its arguments, which for each bioReservoirthat is an-up-bioReservoir-of the original bioProcess finds each upbioProcess that is an-up-bioProcess-of such bioReservoir and then foreach such up bioProcess: i) if a copy of such up bioProcess alreadyexists upon the Display then it proceeds to iv, otherwise it creates acopy of such up (or down) bioProcess, by cloning it and deleting itsworkspace, ii) it computes a new value for x-pos and y-pos, iii) ittransfers the copy to the Pathway Display at the new specified position(3115), iv) it creates a connection between random locations at the iconof such new (or existing) copy and the icon of the copy that is anargument of this invocation of the procedure, and v) it calls itself(Table 176), but now with such up bioProcess and its copy among itsarguments. Each of these procedures keeps looping and calling itselfuntil all upstream bioProcesses have been processed, and their copiesadded to the Display and connected. The an-up-bioReservoir-of anda-down-bioProcess-of, as well as the a-down-bioReservoir-of andan-up-bioProcess-of, are inverse relations, as previously defined (Table75), which were established during initialization (Table 100) betweenappropriate pairs of a bioReservoir and a bioProcess each. A similar setof procedures is used to display the downstream pathways from thedown-path-tracer.

FIG. 31 illustrates short examples of Upstream Pathway Display (3110)and Downstream Pathway Display (3118). The connections are directional,with the directions of the connections above the bioProcesses indicatingthe direction of material flows, which is from the one that is upstreamto the one that is downstream in relation to each other. The directionsof the connections below the bioProcesses always show the right to leftdirection as a result of the next copy being one that already existed inthe display, such as those connections that revert to 3119 from otherposterior copies. Those pathways are interactive, and selecting the“details” option (Tables 120 and 121) of any of the icons, or changingto Navigation Mode and selecting the icons (3119, 3121), displays thesubworkspaces (3120, 3122) of the originals of those copies, which allowfurther access to any of the navigation (3123) and all othercapabilities associated with their iconic components, and allowingfurther access to possibly distant parts of the application.

Pathways with only bioReservoirs or pathways with alternatingbioReservoirs and bioProcesses can be created with similar methods,using only minor modifications. In this invention the pathways withbioProcesses are preferred because they provide the most informationabout the interactions within the space constrains, while the connectedbioReservoirs can be accessed by just clicking on two icons. Mixedpathways may become very large.

Navigation Panel

An interface and methods are provided to constraint all the capabilitiesprovided in regard to navigation and display of pathways, to limit thescope of the search to a space selected by the user based on thedifferent levels of compartmentalization. This feature can be accessedthrough: a) a Navigation Panel, which can be requested from eachbioReservoir and is dynamically created with the bioReservoir as thereference point; or b) an Experiment Panel. The Navigation Panel is tobe used in General Mode, and is not available in Simulation Mode, sincethe methods do not activate the subworkspaces of the selectedstructures, as do those associated with the Simulation Mode, describedbelow.

As shown in FIG. 32, selecting the “navig-panel” option (3203) from abioReservoir (3201) calls the create-direction-panel-callback (Table177), which displays a Selection Panel (3204). Selecting now theUpstream radio button calls the select-direction-callback (Table 178),which in this case further calls thecreate-upstream-navig-panel-callback (similar to Table 179), which callsthe navig-create-upstream-lists-proc (similar to Table 180), whichcreates two lists with all of its upstream bioReservoirs andbioProcesses, and the complete-navig-panel-callback (Table 186), whichcreates a Navigation Panel (3205) containing a scroll-area (3206)already configured to list all the possible levels of bioModels, thecompartments within the Virtual Model, in which such bioReservoir or allof its upstream bioProcesses are encapsulated. The user now has toselect the desired scope of the search space by selecting one of thosebioModels. By selecting for example in this case the cytosol of the G0phase of a fibroblast (3211) and then selecting the LIST button (3207)calls the list-navigation-UBP-callback (similar to Table 181), whichcreates new lists and calls the navig-read-up-scroll-proc (similar toTable 182) to populate the new lists, displayed on the Panel (3208),with the members of the previous upstream lists that are encapsulated insuch bioModel and all its encapsulated compartments. Those lists displaythe number of elements it contains, alerting the user about thepotential size of the resulting pathway, and if too large or too smallthe operation can be reset and a different bioModel, lower or higher inthe hierarchy, can be selected. Selecting any of those lists (3208)displays (3209) its members, and selecting any of those members (3221)allows direct access to the named bioObject (3210) on its originalbioModel (3211), and displaying its details (3212) allows to furtherinteractively navigate through the upstream or downstream pathways ofsuch particular bioObject.

The user can now select the PATHWAY button (3213), which calls thenavig-draw-UBP-callback (similar to Table 183), which calls thecreate-navig-path-tracer-proc (Table 185) andnavig-create-local-UBP-proc (similar to Table 184) to create anavig-path-tracer (3214), by cloning a master structure, whichsubworkspace is partially built, and which is transferred to the Panel(3205) and its subworkspace (3215) is displayed and further configuredby calling the navig-create-local- UBP-callback (similar to Table 184),which actions are similar to those previously discussed in reference toFIG. 31, resulting in the display of the selected pathway. Selecting anyof those bioProcesses (3216) and displaying its details (3217) allows tofurther interactively navigate through the upstream or downstreampathways of such particular bioProcess. Selecting the RESET button(3218) calls the reset-navigation-callback (Table 187), which destroysthe lists and the navig-path-tracer upon the Panel, enabling theselection of a different bioModel and repeats the process, and selectingthe DELETE button (3219) deletes or recycles the Panel.

4. Simulation Mode: Simulating the Virtual Models

Initialization

The domain-menu comprises the heads “Pathway Libraries” and ” Panels”,and allows also changing between user modes. Before a simulation can berun, the application must be appropriately initialized for such purpose.This is accomplished by accessing the “Panels” menu and selecting the“Initialization Panel” option, which displays the Initialization Panel.

Initialization is necessary only if the application has been started orreset, or if additions or changes have been made in the part of theapplication to be simulated since the last Initialization. The “AddSimul” button is to be selected only after the “Navig Init” has been”successfully concluded. If changes to the database have been made by themodeler since the “Navig Init” was last concluded, or if the applicationhas been restarted, then the “Simul Init” button should be selected,since it comprises the methods of the other two. The common purpose ofboth buttons is to scan the application for the availability of certainvalues of the bioReservoirs that define the initial conditions requiredby the simulation, and if those values have not been provided by themodeler, to infer those values from other values provided by themodeler, and if none of the alternative source of values are available,either default values will be used, including symbolic approximations,or, depending on the attribute which value is missing, to send messagesto the user to provide any of the alternative values and also to providemessages any time that the user requests a predefined query thatinvolves that kind of knowledge.

Selecting the “Add Simul” button calls the add-simul-callback, whichcalls the simul-init-proc (Table 188), while selecting the “Simul Init”button calls the simul-init-callback (Table 188), which differs in thatit first calls the navig-init-proc (Table 99), before calling thesimul-init-proc (Table 188), which does the following:

a) it calls the send-no-input-messages-proc (Table 188), which scans theloaded application for every bioReservoir that has a name but that hasno inputs, either in the form of bioProcesses connected to itsbiopool-p-posts, or as input model-blocks connected to its bioPool, andit sends a message to the user for each of those bioReservoirs foundwith no inputs, as a warning for the user to take appropriated measuresif those bioReservoirs are to be involved in a simulation. Thesimulation proceeds also without those values, since inputs can also beprovided through the Simulation Panel as user inputs, or otherwise thequantity of such bioPool will initially be whatever value the modelerhas set or the program will set for the basal-quantity parameter used,or its default value, and it may or may not be exhausted during thesimulation run; and

b) it creates a set of four lists, which are transferred to theInitialization Panel, provided to inform the user about the source ofthe values for the Scaling-Density 1307) attribute of each bioPool, byadding the name of each bioReservoir to one of those lists that meet thefollowing criteria: i) the list labeled UNList contains allbioReservoirs for which the initial-value of their Scaling-Density wasprovided by the modeler; ii) the list labeled ANList contains allbioReservoirs for which the initial-value of their Scaling-Density wasset by the program to equal the value, provided by the modeler, of theif-scaling-amount of that bioReservoir; iii) the list labeled RNListcontains all bioReservoirs for which the initial-value of theirScaling-Density was set by the program to equal the value of theif-scaling-amount (1210) of the bioReservoir which name was entered bythe modeler in the If-scaling-bioReservoir (1211) attribute of theoriginal bioReservoir; and iv) the list labeled DNList contains allbioReservoirs for which the initial-value of their Scaling-Density wasset by the program to equal the default value of 100.0. To do so, foreach bioReservoir the proc scans the value of its Scaling-Density and ifit has a non-default value it enters the name of such bioReservoir tothe first of those lists, otherwise it calls theset-scaling-density-proc (Table 188), which sorts and adds thebioReservoir to one of the other three lists, following the criteriamentioned above, after setting the value of the Scaling-Density of itsbioPool accordingly.

The set-scaling-density-proc (Table 190) discussed above is the methodused in the current implementation of this invention in conjunction withthe scaled reasoning used as default. An alternative method for settingthe values of the scaling-density attribute, to be used when morequantitative information is available for the system to be modeled ifthe modeler prefer the mixed absolute/scaled type of reasoning, is thelong-set-scaling-density-proc (Table 189), which is much more complexbut also more specific, and involves the known values of thekinetic-parameters of the participating bioReactants for each process. Amixed approach can also be developed where if those kinetic-parametersare known then the reasoning of this procedure is applied, and if theyare not available, then the previous more generic procedure is called.

The “Icons Init” button calls the init-icons-callback (Table 118), whichfunction is not essential for the functioning of this system, but whichprovides a very useful cosmetic function, by realigning the tracers inthe subworkspaces of bioReservoirs and bioProcesses and making theirconnections invisible. The same effect is achieved for individualbioReservoirs or bioProcesses by slightly moving and repositioning theirbioPool or bioEngine, respectively, which triggers their respectiveicon-movement rules, as defined in Table 81, which also apply torepositioning the bioRole-posts any time a bioReactant or bioProduct ismoved.

Selecting the “Init All” button calls all-init-callback (Table 119),which calls the all the initialization procedures mentioned above.

With the one alternative way of simulation where the original bioObjectsare used, when selecting Simulation Mode from another mode starts theversion of the change-mode-proc shown in Table 27, which causes thesubworkspaces of all bioReservoirs and all bioProcesses to bedeactivated, and during the processing involved in activating a submodelfor simulation, the subworkspaces of only the bioReservoirs andbioProcesses selected to participate in such simulation will beactivated; while when leaving Simulation Mode to another mode causes thesubworkspaces of all bioReservoirs and all bioProcesses to be activatedagain. The version of the change-mode- proc used with the othersimulation alternative, where clones of only those bioObjects to be usedare created, does nor contain the lines refering to activation ordeactivation of subworkspaces.

Simulation Panel and Procedures

Because the applications build with this system can become very large,it is important to have control over which parts of the Virtual Modelare included in a given simulation. To control performance, twoimplementations are provided with this system, each having advantagesover the other depending on the hardware facilities available:

In the first implementation, the constraining of the simulation space isachieved by using activatable subworkspaces for composite bioObjects,such as bioReservoirs, bioProcesses, and certain time-compartments, andby having all those structures initialized to a deactivated state. Whenthe subworkspace of an object is deactivated, any structure upon thatsubworkspace is not seen by the inference engine or the simulator. Onlythe subworkspaces of the desired structures at any given time areactivated, and only their contents are therefore participating in agiven simulation and associated inferences. Methods associated withbuttons on the entry-panels used for simulations and experiments,activate the subworkspaces of bioObjects connected along the desiredpathways and encapsulated in the selected bioModel or compartment, andthis activation is necessary for propagating values along the pathways.Inactivation of those subworkspaces occur upon resetting the selectionwithin those panels. This mechanism is also very utile in activating ordeactivating entire branches of a simulation model at run-time. Theefficiency of large scale simulation applications is further improved byhaving the initiation of the simulation of different subcomponents ofthe high-level bioModel be driven by events, when appropriate, or bytime intervals. This implementation allows only a single user to runsimulations concurrently, since the attribute values of the bioObjectschange during the simulation, as well as the activation state of suchsubworkspaces. For multiple users, multiple processes of the programhave to be started.

A second implementation is based in dynamically cloning thosebioReservoirs and bioProcesses, or certain time-compartments, requiredby the simulation, and to use those clones to hold the changingattribute values, rather than the originals. In this implementation, thesubworkspaces of bioReservoirs and bioProcesses are not activatable,remaining always activated. On the other hand, the subworkspaces ofcertain time-compartments are still activatable, are deactivated whencreated, and their activation is controlled during the simulation,operating as in the first implementation. This implementation allowsmultiple users to run simulations concurrently, each on a differentwindow, but increases the burden on the system by increasing therequired RAM to hold the additional transient copies and to run morethan one simulation concurrently. Since the system of the currentinvention is modularized, and the modules can be dynamically up-loadedand down-loaded, part of this problem can be solved by up-loading themodule(s) that contain the originals, creating the copies for thevarious simulations on the top module, and removing the modules that areno longer required from the memory, before the simulation is started. Asimulation can be initiated from any named and connected bioReservoir inthe Virtual Model, from the bioPool of such bioReservoirs, or from thebioReactants and bioProducts connected to such bioPools. As shown inFIG. 33, selecting the “simul panel” option (3303) from the desiredbioReservoir (3301), which is only available when in Simulation Mode,calls the create-input-type-proc (Table 190), which creates one of twotypes of entry-panel by cloning one of the prebuilt master structuresand displays the subworkspace (3304), called a Simulation SelectionPanel, depending on whether the subclass of bioPool involved representssoluble or bound bioEntities (Concentrations or Density inputs,respectively). Either Panel (3304) prompts the user to select the typeof input, and the choices offered are combinations of absolute or scaledvalues with one-time or periodic inputs. Selection of one of theradio-buttons calls the select-input-panel-callback (Table 191), which:a) according to the user's selection it calls one of a set of specificprocedures, including such called in this example, thecreate-periodic-relative-input-panel-proc (Table 193), which creates andpartially configures one entry-panel of the specified type by cloningone of the several prebuilt masters; b) it creates two lists and thencalls the fill-br-downstream-lists-proc (Table 194) to search theapplication for all bioReservoirs that are downstream of such referencebioReservoir, as defined by the relations established during the initialinitialization, and fills the DBR list with those bioReservoirs, andthen do the same for the downstream bioProcesses to be added to the DBPlist, and uses those values to configure the scroll-area, and c) itcalls complete-input-panel-proc (Table 192) to complete that panel anddisplay its subworkspace (3305), called here a Simulation Panel. Each ofthe entry-panels is related to the bioReservoir (3301), or thebioReservoir referred by the bioReactant, from which the request wasoriginated, that is, the Related-item attribute of the entry-panel newlycreated is a pointer to such bioReservoir. The difference between theone-time or periodic inputs types of Simulation Panel is that the latterhas two additional entry-boxes to allow the user to enter the timeinterval for subsequent entries (3309) and the number of subsequententries (3308) at such intervals of the amount indicated by the entryvalue (3306) and starting at the indicated time (3307). The differencebetween the absolute or scaled inputs types of Simulation Panel is thatthe entry value in the former is given in some units standardizedthroughout the application while the latter is a dimensionless value.The prebuilt panels contain the overall layout with the commoncomponents, while other structures specific for each bioReservoir areadded dynamically at run time.

The Simulation Panel (3305) can now be used to interactively set-up andstart simulations comprising a desired bioModel by selecting one fromthe scroll-area (3312), as described in relation to FIG. 32, to allowselection of an adequate size of the model to be simulated. Theparameters and optional capabilities used for the simulation at run-timeare configured by using an structure upon the Simulation Panel specificfor that purpose, the Shell's model-definition (3318). Its table ofattributes (3319) allows the configuration of any desired attributes.The Items-belonging-to-this-model (3320) is set by the program to namethe bioModel selected by the user, and the variables and parameters thatform part of the simulation model are all those encapsulated in any ofthe bioReservoirs and bioProcesses in the pathway contained in theworkspace named by such attribute. This is important when dealing withvery large systems, allowing to focus the computer resources on thesubsystems of interest. Further attributes are used to set the timeinterval (3411) between simulation cycles, the type of integrationalgorithm (3412) desired for the state variables; the configuration forany external simulator (3413) that can also be used to receive orprovide values of the variables in this model; the name of any mainprocedure (3414) that is invoked once every simulation cycle, which maystart or call any other procedure, and which in this case calls themodel-simulation-proc (Table 204); a choice to send all the values toexternal databases or simulators(3415) at the beginning of each cycle;an indicator (3416) of whether the simulation is not-running, running orpaused, or whether is nothing to simulate or is a simulation error; andthe configuration of the simulator clock (3417) to run eithersynchronously or as fast as possible, which is more appropriate forsimulating models where actions take place over long time periods.

This Panel permits the user to enter the input value (3306) to be addedto the Accumulation of such bioReservoir and the time (3307) of suchinput. Help buttons in each section of the Simulation Panel providesinstructions for the user in how to proceed, such as the one (3310),which subworkspace is shown (3311). Following those instructions,selecting the LIST button (3313) calls the list-simul-callback (Table195), which finds the previous lists and then calls the read-scroll-proc(Table 196) to search for the members of those lists that areencapsulated in the bioModel selected by the user, as previouslydiscussed, and fill the lists labeled DBRL (3314) with downstreambioReservoirs, the SDBPL list (3315) with downstream bioProcesses, andthe UBRL list with bioReservoirs that provide the inputs for suchbioProcesses but which are not included in the first list.

As shown in FIG. 34, selecting one of the bioReservoir lists (3314)displays a workspace (3401) with pointers (3402) to each of the elementsof that list, which allows to examine the bioReservoir that are to beincluded in the simulation. Selecting any of those pointers (3402)allows the user to either display the table of attributes (not shown) ofthat bioReservoir or to directly display the bioReservoir, and itssubworkspace (3419), upon its bioReservoirs Bin. In a similar way,selecting the SDBPL list (3315) displays the pointers (3405) to thebioProcesses that are to be included in the simulation, which uponselection (3406) directly displays the bioProcess and its subworkspace(3425). The user can examine those lists to decide whether the selectionmade is appropriate before proceeding. If not satisfy the user can resetthe panel, and transfer to the panel additional or different submodels,and press the “List” button again.

When a Simulation Panel is created, the ACTIVATE (3316) and START (3322)buttons are disabled to prevent the user of taking such stepsprematurely. When the processing associated with the LIST (3313) buttonis completed, the ACTIVATE button (3316) is enabled, and when selectedit calls its associated procedure, which is one of three listed (Table197) and specific for each type of Simulation Panel. Such procedurescheck that a value has been entered by the user and then callactivate-simulation-proc (Table 198), which in turn: a) looks on thePanel for the three lists created above and calls theactivate-model-proc (Table 199) with those lists as arguments. Uponentering the Simulation Mode the subworkspace of all bioReservoirs andbioProcesses are deactivated, so that their variables becomeinaccessible to the simulator. The function of this procedure is now toscan the DBRL (3314), DBPL (3315), and UBRL lists and activate thesubworkspaces of each of their elements, which are the ones that will benow included in the simulation, after which returns back to the previousprocedure, which scans for the Basal-Density attribute of the nowaccessible bioPool of each of the bioReservoirs on those DBRL and UBRLlists and if its value has been modified by the user then it adds thename of the bioReservoir to the User-BC list of the set described below,and if its value has a default value then it calls thebasal-density-proc (Table 200) for such bioReservoir.

A simulation starts with the baseline model, after being initialized bysetting the initial values of the initial amounts of the bioPools(concentrations, densities, scaled-amounts, or other quantities,depending on how the bioPools involved where defined) to be equal to thevalues of the corresponding basal amounts. In order to activate thesystem, a disturbance may be introduced by entering one or more inputvalues through the entry-panel of the desired bioReservoir, or throughthe desired experiment-selections of the Experiment Panel (below). Byentering different values for those variables, or by changing the valuesof the constant parameters, what-if analysis can be performed on thesystem. Montecarlo simulations can be performed using amontecarlo-model-block as an input to each of the bioPools desired astest inputs, as explained in other section, and the simulation can thenbe started from either the entry-panel of a desired bioReservoir, orthrough the desired experiment-selections of the experiment-panel,without entering entry-values. The history of values for each of thevariables of interest can be stored in the form of a matrix-likestructure that is an array of arrays of values for each variable orparameter. The values of those arrays are transient values that can beused for statistical and sensitivity analysis within this system, or canbe archived to a text file external to the system of this invention, orthe values can be transferred to an external statistical package forfurther analysis. In addition, if the values of those arrays are desiredin a permanent form within this system, this is accomplished by usingthe procedure provided to make the initial values of an array equal tothe list of its current values, separated by commas.

The basal-density-proc (Table 200) has an important inference role sincethe value of the Basal-Density (or the Basal-Concentration) is used whenthe simulation is started as the initial value for the state variable ofthe bioPool, the Accumulation. The task of this procedure is to obtain avalue for that attribute, if the user has not specifically entered one,from other data and information contained in other attributes of thatbioReservoir or its bioPool. It also uses a set of lists encapsulated inthe structure labeled BA (3317) upon the Simulation Panel to sort andlist all the bioReservoirs to be included in the simulation, to indicatethe source of those values used for the Basal-Density. The user canexamine the results of that inference after the processing associatedwith the ACTIVATE button is completed, when the button becomes disabledand its appearance changes.

Selecting the BA button (3317) displays its subworkspace (3523) with aset of lists filled by the program following the criteria discussedbelow. Those lists can now be examined, by selecting their icons to findout which of the bioReservoirs got the value from each of thealternative more or less precise sources.

Various alternative versions of this procedure are made available, whichare disabled and the one preferred is enabled by the modeler to bettermatch the particular application. Alternatively, each of the alternativeversions could be made specific for particular subclasses or groups ofbioReservoirs. This procedure initially scans the normal-basal-densityvalue of the bioReservoir and if that value is different from thedefault value of 9.99e-99 then the Basal-Density is set equal to itsvalue, and the name of the bioReservoir is added to the NBD-BC list. Ifthe subclass of bioReservoir is sol-mol-reservoir then theBasal-Concentration would be set equal to the value of thenormal-basal-concentration if different from the default value. In thealternative implementation shown here, if the subclass of bioReservoiris sol-mol-reservoir this procedure scans the normal-basal-concentrationvalue of the bioReservoir, if that value is different from the defaultvalue, 9.99e-99, then the Basal-Density is set equal to its valuemultiplied by the Avogadro's number, which states that each mol has6.023e23 molecules, and the name of the bioReservoir is added to theNBC-BC list. The conversion is made when modeling complex mixtures ofbound and soluble molecules. For example, for many biochemical systemswhere the molecules form large localized active complexes molecules arenot homogeneously distributed, and therefore it is more meaningful tointegrate in a bioProcess the quantities of both types of bioPoolsrepresenting bound and soluble molecules using the number of moleculesrather that their concentrations. If the normal-basal-density (ornormal-basal-concentration) has the default value, then this procedurescans for the Scaling-Density attribute of the bioPool and if it has thedefault value then the bioReservoir is added to the “NO BC” list.Otherwise, this procedure scans for the Scaled-Basal-Amount of thebioPool, and if its value is not the default value, then theBasal-Density is set equal to the value resulting from multiplying theScaling-Density by the Scaled-Basal-Amount values, and the name of thebioReservoir is added to the SBA-BC list. Otherwise the Basal-Density isset equal to the value resulting from multiplying the Scaling-Density bya factor associated according to the symbolic value of the Abundanceattribute of the bioReservoir, which value is set by the modeler orotherwise the default value is used, and the name of the bioReservoir isadded to the PAB-BC list. The inference engine may proceeds the searchfor other sources of values, such as in an alternative method, wherethis procedure sets the value of the Basal-Density equal to a valueproportional to the physiol-max-density (or physiol-max-concentration)of the bioReservoir if this value is different from default. If the userhas not entered any of those values, then the program sets the value ofthe Basal-Density equal to the average of any known thresholdingparameters of any bioReactant connected as an output of thisbioReservoir, such as the Km, Ks, Ki or 1/(2*Kp). This alternativemethod emulates the following reasoning: the value of Basal-Densityrepresents physiological conditions and it is assumed that physiologicalconcentrations approach the mid-range functional concentrations in themost relevant bioEngine in which the bioReservoir participates, asrepresented by constants such as the Km for a substrate, the Ki for aninhibitor or the Ks for a ligand or complex-subunit. If those values arenot known, a message is displayed requesting the user to assumed somevalues, based on comparisons with similar systems. Under normal in vitroassay conditions, an enzyme is generally present in limiting orcatalytic amounts, in a range between 10e-3 nM and 10e2 nM, while asubstrate is generally in the range of 10e3 nM to 10e7 nM. This valuecan be adjusted at a later time as more is learned about the system. Ifnone of the alternative means are provided the system's default valuesare set.

Once the participants in the model have been activated and configured,the input values have been entered, and the model-definition has beenconfigured, the simulation is started by selecting the START button(3322), which depending on the type of Simulation Panel will call one ofthe six procedures specific for each of the one-time Panels (Table 201)or for each of the periodic Panels (Table 202), which read the inputvalues entered by the user and perform different types of processingdepending on the types of variables involved. Theconcentration-entry-panel is used to input the absolute concentrationvalue entered by the user in the input-value edit-box, in units such asmolar, which is added as a concentration or is converted and added as adensity (depending of the alternative options available in thisimplementation). In a similar way the density-entry-panel is used toinput an absolute density value, such as units/compartment, while therelative-entry-panel is used to input the scaled dimensionless value.Those input values are used the values of the corresponding attributesin each type of bioPool, such as the density-entry or the scaled entryat the time of entry value entered by the user, where these values arethen integrated by the formula of the Accumulation of such bioPool atthe next simulation cycle, and the values of such attributes are resetto 0.0 after one simulation period has elapsed since the time the inputvalues were set. The set of periodic type of Panel follow initially thesame type of processing, but the setting of the values of thedensity-entry or the scaled entry attributes of the bioPool occurs thenrepeatedly as many times as entered by the user in the entry frequencyedit-box at times intervals as entered by the user in the time-intervaledit-box, beginning at the simulation time entered by the user in theinput-time edit-box. Each of those procedures then callstart-simulation-proc (Table 203), which requests the simulator to runthe model as previously defined in the model-definition.

During the simulation run the model-simulation-proc (Table 204) iscalled once every simulation cycle, which sets the values of theattributes current-simulation-time and current-simulation-time-incrementof the entry-panel. The user can select the “T” button (3325) to displayits subworkspace (3418), which contains a digital display of thosevalues as well as the values of other performance parameters. Thisprocedure also calls the compute-graph-transform-proc (Table 205)described below.

By selecting the PAUSE button (3323) or the RESUME button (3324), whichcall their associated procedures (Table 206), the user can pause andresume the simulation at will. By selecting the RESET button (3326) thereset-simulation-callback (Table 210) resets all the buttons on thePanel and calls the reset-proc (Table 207), which: a) first it scans theDBRL, UBRL, and DBPL lists and resets each of the bioReservoirs andbioProducts listed, including their status attributes, their icons anddeactivating their subworkspaces; and b) then delete those lists. TheDELETE button (3327) is disabled when the LISTS button is selected andit is not enabled until the reset is completed, preventing the user fromdeleting the panel before all the participants in the simulation thatmay have been modified are reset.

The procedures that are modified for the alternative implementation ofthe simulation, when copies are used instead of the originalbioProcesses and bioReservoirs so that the values of the originals arenot modified, are listed in Tables 211 through 221).

Digital and Graphic Displays of Dynamic Values

This system's graphic interface allows simulations to be followed indifferent ways, including:

a) creating pathways on a workspace where dummy copies of thebioProcesses involved, or full copies of both the bioReservoirs andbioProcesses involved (depending on the alternative method of simulationused) of all the participating), are located in sequence and thecorresponding connections between them are drawn. These structures allowto further interactively navigate through the system as usual, includingback to the originals from which the copies were made;

b) animation by color changes of the activated components;

c) display of the current values of desired variables in digital form;

d) dynamically created graphs of a set of time series of the values ofdesired variables; and

e) dynamic charts of the values of a variable versus another variable;

Selecting the “details” option of any of the bioReservoirs orbioProcesses that take part in the simulation allows to follow up thequantitative simulation by providing access to the different structuresin their subworkspaces. Only the icons upon subworkspaces that areactivated are active. The current values of the variables of eachbioReservoir or bioProcess are by default displayed in digital form(3403 and 3404). To dynamically display the time course of the valuesthose variables for the time frame selected during a simulationgraph-tracers are used, which subworkspaces with a graph and associatedstructures are not stored, but are rather created or deleted when theuser selects one of such tracers.

A graph-tracer is an object (Table 32) connected either to a bioPool(3420 and 3421) or a bioengine (3426), used to control the dynamiccreation and display at run-time of a graph which plots the values overtime of key variables or parameters of the bioObject where they arecontained, scaled or absolute versions for bioReservoirs. Selecting the“show-plot” option calls the graph-tracer-handler-proc (Table 33), whichdepending on the class of the graph-tracer from which it was invokedcalls either the scaled-BR-graph-proc (Table 207), theabsolute-BR-graph-proc, or the scaled-BP-graph-proc, which first createa subworkspace (3422 or 3427) for that tracer (3421 or 3426) with allits contents by cloning the subworkspace of the corresponding prebuiltmaster structure, and then configure the labels of the graphs (3423 and3428) and the ref-bioreservoir or ref-bioprocess attribute of each ofthe graph-tranf-vars (3424 or 3429) upon such new subworkspace to referspecifically to that bioReservoir (3419) or bioProcess (3425),respectively.

The design of graphs and associated structures deal with plottingmultiple variables, which values differ by orders of magnitude on graphstructures that do not provide multiple axis scales. In the currentimplementation, the system automatically adjusts the scale to thecurrent values of the time-series to be plotted, using a system ofintermediary variables to dynamically transform those disparate valuesinto others that fit a common scale. This set of new variables areinstances of subclasses of the class transf-factor-var (Table 15), afloat-variable. A representative example of the attribute table of adefault instance of one of those subclasses, a velocity-transf-factor,is shown (Table 208). Among the attributes of transf-factor-var are:“transform”, which value is given by an instance of the classgraph-transf-var (Table 14); and Ref-variable, which makes reference tothe particular attribute of a bioObject that provides the input value.The Label and the Transform value are displayed. The role of thegraph-transf-var is to hold a transformed value of the current value ofthe parameter or variable referred to by its Ref-variable. Thetransformed value is suitable for plotting within the scale of therelated graph. The role of the transf-factor-var is to hold the value ofthe factor necessary to obtain the desired transformation, as inferredby the compute-graph-transforms-proc (Table 205) only when asimulation-model is running. Each subclass of the classtransf-factor-var corresponds to one of the bioObject's attributes to betransformed, which matches the value defined for the Label attribute ofeach subclass. The transf-factor-var provides by itself the order ofmagnitude of the variable it transforms.

Selecting the “hide-s.graph” option (Table 209) of the bioReservoir,which appears only when the graph upon the subworkspace of thescaled-BR-graph-tracer exists, or deselecting the graph-tracer, orselecting the delete option directly from the subworkspace of the tracerdeletes that subworkspace with its contents. The same applies for theother classes of graph tracers.

Scaled Computation Approach for the Variables of bioReservoirs andbioProcesses

The formulas of the parameters and variables that dynamicallycharacterize a bioPool, depend on other numeric variables or parametersthat are either attributes of the bioPool (FIG. 13) or its bioReservoir(FIG. 12), or that are attributes of the bioReactants (FIG. 14) andbioProducts (FIG. 15) that represent such bioReservoir in differentbioProcesses. Table 83 lists a representative set of formulas, asexamples of generic simulation formulas comprised in this invention tosimulate a set of scaled-valued variables and Table 84 lists a set ofgeneric simulation formulas specific for the Contribution of differentsubclasses of bioReactants that incorporate the values of scaled-valuedvariables or parameters. Table 86 lists a set of generic simulationformulas that are alternatives to the formulas in the set shown in Table84, and which can be used in this invention to incorporate the values ofabsolute-valued variables or parameters into the Contribution of eachbioReactant. These formulas for the Contribution do scale those absolutevalues using either a linear or sigmoid approach, depending the role ina bioProcess represented by each class of bioReactant. Therefore, sincethe output of the Contribution is dimensionless, whether the inputs arescaled (as in the case of using the formulas in Table 84) or absolute(as in the case of using the formulas in Table 86), it is now possibleto integrate in a single bioProcess a mixture of bioReservoirs, wheresome of those bioReservoirs use only the scaled-valued variables whileother bioReservoirs, called of mixed-type, use a mix of thescaled-valued variables, such as the Scaled-Amount, and absolute-valuedvariables, such as the Density. Those two values are interconvertible byusing the value of the Scaling-Density, as computed by the formula forthe Density in Table 86, so the user may be able to display the outputof a simulation also as converted back into Density units in this case.The Contribution can be used in conjunction with either absolute-valuedor scaled-valued variables, and therefore allows to integrate parts ofthe simulation where the absolute values of parameters and initialconditions are known, where other parts of the simulation where thosevalues are unknown an have to be approximated, which is best done whenusing dimensionless values.

The Quantity of the bioPool is the only quantitative output valuepropagated from any component of a bioReservoir to any component of abioProcess. That output quantity value of the bioPool is used to computeeither: a) the value of the Velocity of each bioEngine connected to eachbioReactant connected to such bioPool, which is the method normally usedwhen using the absolute computation approach, to be discussed below; andb) the value of the Contribution of each bioReactant connected to suchbioPool, which is an intermediary variable that is used to compute thevalue of the Velocity of the bioEngine to which that bioReactant isconnected, in combination with the Contributions of all bioReactantsconnected to such bioEngine, this being the preferred method used whenthe scaled reasoning mode of simulation is preferred by the modeler oruser. The formulas for the variables that give the value for theContribution are specific for different classes of bioReactants, as morespecifically defined in Tables 83 and 84. The formulas for the classesthat represent reactants that bind to specific sites other reactants,such as substrate.r, ligand.r, inhibitor.r or ion.r, are designed as toprovide a sigmoid scaling around their characteristic kineticparameters, which implicitly provides a smoothed thresholding of theQuantity of the bioPool for that particular bioProcess, as representedby the bioReactant. When using the scaled-valued set of variables, theScaled-Amount is used in conjunction with the corresponding scaledkinetic parameter, as the examples given in Table 86 show. The formulasfor the Contribution for other classes of bioReactant, such asreceptor.r or enzyme.r, are designed as to provide a linear scaling fromnone to their maximum observed value, represented as 100 if suchabsolute value is unknown. In contrast with the absolute mode ofcomputation, where there may be great variability in the formulas neededto provide the value for the Velocity, depending on the class ofbioEngine involved, in the scaled mode of computation the variability isintroduced, to a much lesser extent in the simulation formulas thatprovide the value for the Contribution, while only one very genericsimulation formula is required for the Velocity of all classes ofbioEngines. As listed in Table 83, the very generic simulation formulafor the Velocity included in the current implementation of thisinvention integrates various coefficients and a rate-constant to givethe modeler or user the flexibility of by changing the values of thoseattributes of the bioEngine to modify the behavior of the system indifferent ways, without the need to write specific formulas for eachsituation, while the default values of those attributes do not affectthe system.

The Velocity of each bioEngine is used to compute: a) theProduction-Rate any bioProduct connected to such bioEngine; and b) theConsumption-Rate any bioReactant connected to such bioEngine, which maybe 0.0 if such bioReactant represents a reactant that is not consumed insuch process, or may have a value that may be withdrawn from a bioPoolas an output (like any standard Consumption-Rate), but then retained fora period of time and then returned back to the bioPool as an input (likeany standard Production-Rate will do), as specified by methods specificfor the variables of such particular pair of bioReactant and bioPool, orfor a group of such pairs that are identifiable by some specific commonattribute, or that are defined as separate subclasses of theirrespective classes.

Several bioProcesses may contribute through their outputs to theInput-Rate of that bioPool, which values are then integrated whencomputing the value of the Accumulation of that bioPool. Users can alsoadd (or remove) an absolute or scaled amount during a simulation to theselected bioPool, by having specific procedures setting the values ofspecific attributes of the bioPool, as discussed above, which are thenintegrated into the Accumulation by its simulation formula.

The Basal-Quantity (which may be either a Basal-Concentration, aBasal-Density, or a Scaled-Basal-Amount) represents the initialconditions, and provides the initial-value for the integration ofAccumulation, which is a state variable that integrates all otherdependent variables. When using the scaled-valued set of variables, thevalue of the Scaled-Amount is the value of the Accumulation constrainedto a range within 0.0 and 1.0. The values of the Concentration orDensity are constrained to not be less that 0.0.

In this invention, when the user selects simulation mode, thesubworkspaces of all bioReservoirs and bioProcesses are deactivated, andonly those that are to participate in a simulation run are activated.This is a mechanism to improve performance of what may become anextremely large system of parameters and variables. In the currentimplementation of this invention, each of the values is computed onceeach simulation cycle using the equations defined by simulationformulas.

The implementation of the intermediary variable, the Contribution, is anovel and very important teaching of this invention, particularly inapplications when the knowledge of the quantitative parameters andinitial conditions of the system are incomplete, or when a more abstractand generic system is desired, such as when providing a Shell to be usedin different and unpredicted ways. This implementation is relevant inseveral different ways. It allows to treat each of the bioReactant of abioProcess as a generic self-contained unit, which allows to model alsoparticipants in a bioProcess that are known to interact but which exactroles in such process are unknown, where the velocity is genericallycomputed by simply multiplying the contributions of any participant thatthe modeler may want to model. These generic units become even moregeneric when used in combination with the set of scaled-valuedvariables, which allow the user to enter values based on expertknowledge, or quickly perform what-if analysis. Another important resultof using the Contribution is that it allows to perform quantitativesimulations that integrate into the Velocity of any bioProcess valuesoriginated from bioReservoirs with both types of absolute-valued andscaled-valued variables. This means that those parts of the complexmodel where the absolute values of their kinetic parameters and initialconditions are known can be integrated with other parts of the complexmodel where relative values are used because the absolute values may beunknown.

The abstraction provided by the Contribution also facilitates the use ofbioProcesses as black-boxes, which are also be implemented in thecurrent invention without using the Contribution. Black-boxes are usedto represent any type of participant that is known to cause something tochange somewhere down the line, even if it is known that otherintermediaries are involved, but where the details or identity or eventhe existence of those intermediaries is unknown. The bioReactants in ablack-box represent the entities (of bioPool(s)) that cause some effecton some other distant entities or bioProducts (the input to otherbioPool(s)), and like in other generic bioProcesses, either thekinetic-coefficient (scaled or absolute) that modifies each bioReactant,or the rate-constant that modifies the overall process, representing theproportionality factor between the quantity of cause(s) and the quantityof effects, can be used.

Absolute Computation Approach for the Variables of BioReservoirs andBioProcesses

More standard ways of quantitative simulations using the known absolutevalues of the system parameters and initial conditions, can be performedby using only the set of absolute-valued variables or parameters, and byusing a different set of generic simulation formulas, such as thoseshown in Table 85. From those variables, the one that offers morevariability in the formulas needed for each class of bioEngine is theVelocity, which is in contrast with the scaled mode of computation whereonly one very generic simulation formula is required for the Velocity ofall classes of bioEngines. It is also possible to write very complexsimulation formulas to encompass a variety of different situations, suchas that in Table 82 to be described below. The value of the Velocity ofa bioEngine in this approach depends directly on the Quantities of thebioPools connected to each bioReactant connected to such bioengine,which is the method normally used when the formulas that give the valueof the Velocity are those that represent the equations that a biochemistwill normally use to compute the velocity of a reaction, based on thequantities of the reactants and on some known kinetic parameters, suchas the Michaelis constant (Km), inhibition constant (Ki) or theequilibrium dissociation constant, and which the preferred method usedwhen the absolute reasoning mode of simulation is preferred by themodeler or user. The simulations formulas for the Velocity ofabsolute-valued enzymes, such as that listed in Table 85 (which isequivalent to the Briggs and Haldane approach whereV=n*kp*[E]*[S]/([S]+Km*X), where X=1 if no inhibitor.r is connected tothe bioEngine, or X=(1+[I]/Ki) if an inhibitor.r is also connected tothe bioEngine), assume the instantaneous or initial velocity approach,since increases or decreases in the Concentration of the substrate areupdated at small time intervals in this invention.

Following are some examples of how the common knowledge of biochemistsis implemented in the current invention.

For receptor-bioEngines or enzyme-bioEngines with multiple equal bindingsites, the velocities can represent reactions of two major types: a) thegeneric simulation formula for non-cooperative-binding is equivalent toV=n*Kp*[E]*[S]/(Ks+[S]), and represents the situation where binding atone site has no effect on the intrinsic dissociation constants of thevacant sites, yielding hyperbolic velocity curves, and being impossibleto tell from the kinetics whether there is 1 pmole with n identicalsites or n pmoles of 1 site; and b) the generic simulation formula forcooperative-binding represents the simple sequential interaction modelof an allosteric enzyme with 2 cooperative substrate sites. It ismodeled as two substrate.r connected to the same bioPool, but each ofthose bioReactants have different dissociation constants, and thesimulation formula is equivalent to V=n*kp* [E]*([S]/Ks1+[S]{circumflexover ( )}2/Ks2{circumflex over ( )}²)/(1+2*[S]/Ks1+[S]{circumflex over( )}²/Ks2{circumflex over ( )}²). Here, the binding of one substratemolecule increases the affinities of the vacant sites for the nextsubstrate molecules, yielding sigmoid velocity curves. Thus, the sigmoidresponse acts as a smooth “on-off” switch”, and at intermediate specificvelocities, this provides a much more sensitive control of the reactionrate by variations in the substrate Concentration. Allosteric enzymesgenerally result in sigmoid velocity curves due to cooperative binding,either positive or negative (binding one molecule facilitates binding ofthe next). The Hill Equation is used for an enzyme with n equivalent Sbinding sites, if the cooperativity is very marked, in which case the Kmof the single substrate.r has to be set, not equal to the real Km butrather equal apparent Km to the n power. Under these conditions,dominated by [S]{circumflex over ( )}n, the equation can be simplifiedto V=kp*[E]*[S]{circumflex over ( )}^(n)/(Km′+[S]{circumflex over( )}^(n)). For enzyme-bioEngines, the application in this inventionfocus on regulatory pathways, which are controlled by enzymes thatactive form is only present in catalytic amounts and a steady-state isassumed. For receptor-bioEngines, which include processes for otherspecific binding proteins, the generic formula for the velocityrepresents the system at equilibrium, and is equivalent to v≈[RL]=n[R]t/(1+(Ks/[L])).

Inhibition can be modeled in different ways, and the modeler has todecide what best represents each situation. Table 82 lists a verygeneric formula that allows the modeler to connect to the bioEngine oneinhibitor-reactant that can be of any one of the four common typesrepresented by the four defined subclasses of inhibitor-reactant. Thisformula is capable of first detecting which subclass ofinhibitor-reactant is connected to the bioEngine, and then applying theequation with one of the alternative modifiers included that apply tothat particular type of inhibitor. However, some of those types ofinhibitors may be better represented in the system of this invention ascompeting with the substrate from a separate bioProcess, which allowsfor a more intuitive representation and understanding of suchcompetition and a higher level of manipulation by the user, which are infact some of the advantages offered by the system of this invention whencompared with other more global modeling approaches. Competitiveinhibition may be modeled within the corresponding bioEngine, with thegeneric formula such as that in Table 85. Noncompetitive inhibition isbest modeled as a separate complex-formation-process between the enzymeand the inhibitor that competes for the enzyme by being connected to thesame bioPool. Feedback inhibition should always be modeled by a separatebioProcess. Any further velocity equations can be derived in the samemanner, by using well established equations in the field of biochemicalkinetics, and the reader is referred to standard references, such asSegel, I. H.,1976, Biochemical Calculations 2nd Edition, John Wiley &Sons, New York.

Experiment Panel and Procedures

An Experiment Panel (3503) is a facility that allows to perform many ofthe tasks previously discussed, but with the additional capability ofusing multiple points of reference for the generation of lists, creationof pathways, or as the recipients of quantitative inputs forsimulations. In contrast to the Simulation Panels, which are dynamicallycreated and deleted when requested from the bioReservoir that serves aspoint of reference, a Library of Experiment Panels are created aspermanent generic structures with different designs, accessible throughthe “Panels” head (3501) of the domain-menus associated with the GeneralMode and with the Simulation Mode previously discussed. Each ExperimentPanel is the subworkspace of an instance of entry-panel created bycloning the Master-Experiment-Setup-Panel. As shown in FIG. 35,selecting one of those options (3502) from the domain-menu (3501)displays the subworkspace (3503) of the named entry-panel, whichcorresponds to one of those predesigned Experiment Panels. The newcomponents of such Panel are the structures (3504) organized in columnsand rows, which are instances of class experiment-selection (Table 222).New designs are created by deleting of adding any number of suchauxiliary structures, used to select the combination of bioReservoirsthat are to serve as the points of reference in such experiments, andalso to allow the user to enter the input values for quantitativesimulations of such experiments.

Selecting one of the experiment-selections (3504) displays its table ofattributes (3505), which allows to: a) enter a short name in its Labelattribute displayed on top of the icon, b) select a bioReservoir, asentered in its Ref-bioreservoir slot, and c) enter whether Currentlyselected is true or false. The values of those attributes are sufficientto perform any of the qualitative tasks associated with this panel. If aquantitative simulation is desired, any of the values for the otheroptional attributes may be entered, such as those for an absolute-valuedinput or an scaled-valued input, time of input, time interval forperiodic entries, and entry frequency, which have the same use as thosepreviously discussed in relation to FIG. 33. The configurations of anyor all those experiment-selections can be stored for later use, and thecombinations of different experiment-selections to be included in aparticular experiment may be quickly changed at will by changing thevalue of the Currently selected, since only those with such value set totrue, which get also highlighted with a different color, are included inthe processing when any of the tasks is requested. This allows the userto have a set of experiment designs for those types of experiments mostfrequently used. The BIORESERVOIRS button (3506) provides a graphic toolto facilitate the task of the user in selecting the appropriate name toenter in the Ref-bioreservoir attribute of those experiment-selections,to be selected from among the large number of bioReservoirs in theVirtual Model. Selecting this button displays its subworkspace (3507) ifone exists, or calls the BR-scroll-callback (Table 223) that createsone, containing an scroll-area listing in alphabetical order all thenamed bioReservoirs loaded on memory, and which in addition to providingthe specific nomenclature used for desired bioReservoirs, it allows todirectly access and verify the details of a selected bioReservoir.

Upon entering the choices of Ref-bioreservoir and setting the value truefor the desired combination of experiment-selections, the user canproceed by selecting the PROCESS button (3510), which calls theprocess-exper-callback (Table 224), which creates a set of lists andthen scans the Panel to find all experiment-selections for whichCurrently-selected is true and the Ref-bioreservoir has a value, whichare inserted in the “Exper. Selections” list (3512), and for each suchexperiment-selection found, it calls the samefill-br-downstream-lists-proc (Table 194) called from the SimulationPanel to fill the other two lists, one (3513) listing all downstreambioReservoirs of all those bioReservoirs named by theexperiment-selections in the previous list, and the other (3514) listingall downstream bioProcesses of all those bioReservoirs named by theexperiment-selections in the first list; and then finds all thebioModels that include all of those bioReservoirs and bioProcesseslisted in those lists, and creates an scroll-area displaying thosebioModels, to allow the user to select the desired scope of inclusion.Selecting the CLEAR button (3529) calls clear-exper-callback (Table225), which deletes those lists and the scroll-area, to allow makingdifferent selections and repeating the PROCESS. The other buttons andstructures on the Panel (3515, 3521-3530) have similar or equalfunctions as those described for the Simulation Panel, and thereforehere only the differences will be briefly highlighted. The reader isreferred to the Tables 225 through 233 for a more detailed descriptionof the processing involved. Selecting the LIST button (3515) calls thelist-exper-callback (Table 226), which creates a new set of lists: SDBRL(3516), SDBPL (3517), and UBRL (3518) lists, and finds the members ofthe previous sets of lists that are encapsulated in the selectedbioModel.

Selecting the PATHWAY button (3520) calls thedraw-exper-pathway-callback (Table 227), which creates anavig-path-tracer (3531) together with its subworkspace by cloning theMaster-Navig-Pathway and transfers it to the Panel, and then it scansthe “Exper.Selections” list (3512) and for each bioReservoir listedcalls the create-local-exper-BP-proc (Table 228), while setting thevalue of the x-pos to a value close to the initial position whenchanging from one bioReservoir to the next, which performs a processingvery similar to that described earlier for the create-local-UBP-proc(Table 176) for the upstream direction. Now, instead of once as before,that procedure is called as many times as bioReservoirs are in the“Exper.Selections” list.

One example of the display of one of those multi-origin pathways isshown in FIG. 36, which are more complex. The pathways start frommultiple initial bioReservoirs, and the pathways from latter initialpoints are connected, whenever the possibility arises, to the pathwaysfrom former initial points already on the Experiment Pathway Display.Alternative implementations of any of the types of pathways are toinclude in the drawing of the pathways not only the bioProcesses, butalso the bioReservoirs that are intermediaries between those process inthe chaining process. The procedures for those alternativeimplementations (not shown) apply the same methods and need only minormodifications to create, transfer and connect the intermediarybioReservoirs.

This Experiment Panel can be used either for the only purpose ofgenerating those complex pathways, or they can be further used toperform quantitative simulations that apply to the variables andparameter of the components of those pathways. For that purpose, theremaining buttons and structures to be used in the subsequent steps havebeen described before, and the procedures called upon selection of thesuch buttons (Tables 229 through 233) are only minor modifications ofthose described for the corresponding buttons of the Simulation Panel,to incorporate the fact that now there is not just one bioReservoir butthe various bioReservoirs in the “Exper. Selections” list to consider.

Simulating Complex Models

To deal with complex systems where some parts of the system may be moreprecisely defined than others, the system of this invention integrates avariety of methods to allow modeling and simulations while accommodatingthe uneven types of knowledge available. The following describes how theheterogeneous forms of knowledge are integrated in the system of thisinvention:

-   -   In some cases, sufficient information has allowed scientists to        develop mathematical models to represent a particular behavior        of a system, and some of those models may be suitable for        adaptation to be included in the knowledge-base, giving the user        the option to integrate them in their simulations. This type of        knowledge is usually included in the form of the parameters        characteristic of the system and the initial conditions once the        underlying architecture of the network is matched, or it can be        implemented directly by modeling particular inputs or outputs as        model-blocks.    -   Intermediate levels of information about a sequence of events,        or effects following a cause or combination of causes, allows        the construction of semi-quantitative behavioral networks that        are constrained by the data available, such as time intervals,        context and compartments in which behaviors occurred,        concentration levels at which different behaviors were observed,        and so on . . . This type of information is used to design the        compartmentalized architecture of the network, and to provide        semi-quantitative values to the scaled parameters and initial        conditions.    -   Heuristic and shallow knowledge can be integrated in the form of        either rules or formulas for inferred variables that connect a        cause with a distant effect, without detailed description of the        unknown underlying mechanism.

Depending on the amount and type of information and data available aboutthe system to be modeled, and the nature and size of the bioModels to bedeveloped, the system of this invention's may operate in eitherquantitative or semi-quantitative simulation mode. With well knownmetabolic pathways, the simulation may be run in quantitative mode, butsince in most biological systems both qualitative and quantitativeinformation is incomplete, it may be difficult to simulate with accuracysuch biological systems. However, the semi-quantitative methodsintegrated in the system of this invention allows to gain insight aboutthe degree and direction of change in the model variables, and theirquantity levels at different points in time.

Of major importance in simulating the behavior of biological systems isthe need to model the different states in which complex biologicalentities, such as cells, can be found at different points in time, andalso to model the events that cause the transitions from one state toanother. There are several major types of states and transitions to beconsidered, depending of whether the biological entity to be consideredis a biological system, organ, cell, cellular compartment, molecule orany other entity. We are providing here with just a few examples amongthe many considered in the currently preferred embodiment of thisinvention.

The modeler is provided with several methods to fine tune any specificparts of the complex model, including in the ability to write formulasspecific for the individual instances of variables that are attributesof the bioReservoirs or bioProducts that model any such specific part ofthe complex model. Within those formulas, temporal reasoning is furtherachieved in the system of this invention in several ways, such as byspecifying times or time intervals, using quantitative time constraintssuch as the expressions: during the last 30 seconds, as of 5 minutesago, or between 3 hours ago and 4 hours ago. Fuzzy time intervals andtime constraints may be specified if so desired to handle theuncertainty encountered in biochemical systems. The simulation can besynchronous or asynchronous, by setting different simulation timeintervals for sets of variables of bioProcesses and bioReservoirs thatrepresent different parts of the complex model.

The simulation can be continuous or time-constrained, and either way maybe differentially applied to different parts of the complex model. Toaccomplish that, the simulation formulas can be complemented with rulesthat monitor those simulated variables to either set other values,particularly those that are further integrated into an state variable,or by controlling parts of the model. For example, a bioProcess or abioReservoir can be programmed to be active only for certain timeintervals during a simulation run, by means of rules or procedures thatcontrol the activation and deactivation of its subworkspace. Those timeintervals may be either directly specified or dependent on the values ofother parameters or variables or any of their combinations. Rules may bedefined to monitor the simulated values of specific variables, such asthe Quantity of a given bioPool or the Velocity of a given bioEngine, tobe compared with a specified threshold, that when reached causes thatrule to trigger some actions, such as setting the values of otherparameters or variables, or activating and deactivating the subworkspaceof one or more bioProcesses or bioReservoirs, or starting one or moreprocedures. Such rules may be: a) if-type rules with their Scan-intervalattributes set to a specified time interval that preferably matches thetime-interval used for the simulated variables, which means that suchrules are invoked once every such interval; or b) whenever-type rulesthat are invoked whenever the specified variable receives a value andwhich trigger specified actions when such value fulfills any specifiedconstraints; or c) initially-type rules, that may for example be hiddenin the subworkspace of a bioEngine or bioPool, and which will be invokedonce every time the subworkspace of their superior bioProcess orbioReservoir is activated, and which may trigger any of the actionsdescribed above which may apply to any bioProcess or bioReservoir in thecomplex model.

One of the several applications of this invention is that of a systemfor signal processing and signal integration. In such system,simulations can have three levels of control through: a) theinteractions explicitly modeled in the architecture of the graphicdesign of this invention, namely the network of connected bioReservoirsand bioProcesses, which represent and determines the specificinteractions of the different components of the complex model; b) thepropagation through such network of the dynamic changes in the values ofthe variables of such components; c) through the signals transmitted bythe smoothed thresholding implicit in the design of the Contributionvariables of the bioReactants that determine the output values of theVelocity of the bioEngines, and d) through the rates of consumption ofthe bioReactants and the rates of production of the bioProducts, thatdetermine new changes in the values of the Concentrations, now amplifiedto a larger number of bioPools, which initiate new waves of valuepropagations.

The simulation starts after a perturbation, such as aConcentration-Entry, Density-Entry or Scaled-Entry, has been introducedand integrated in the overall system's equation:d[E](t)/dt=[E](t)+entry+Σ inputs(t)−m* [E](t)−Σ outputs(t). In thissystem, the bioReservoirs and bioProcesses placed in a biologicalcompartment-layer are activated successively in time and space, as theactivation signal is propagating forwards based on various chainingrelationships between those structures established during theinitialization process according to the downstream or upstream positionsof each of those structures respect to the others.

When starting the knowledge-base, the G2-s finds the initial values forall variables that receive values from simulation formulas, and thenexecutes the main simulation procedure. For each simulation cycle, theG2-simulator evaluates in order: 1) simulated state variables andparameters, 2) dependent variables and parameters, and 3) the mainsimulation procedure. The G2-simulator only evaluates one, the mostspecific simulation formula for each variable.

BioReservoirs which variables have scaled values can be mixed in asimulation with BioReservoirs which variables have quantitative values,since both types of outputs are integrated at the bioProcess level onlyafter being transformed to a scaled value. However, the output values ofthe variables of BioReservoirs and of the thresholding parameters, suchas Km, Kd, Ki or kp, have to be of the same type, either quantitative orscaled. The choice of scaled values between 0.0 and 100.0 forbasal-Concentration, based on the knowledge of the domain expert, canalso be entered manually within the table of attributes of thebioReservoir.

Tabular functions of one argument allow to deal with situations when thealgebraic relationship between two bioVariables is not known butexperimental data is available, which allows to build a table thatrelates a set of values that represents the magnitude of a cause withthe set of values that represents the magnitude of the correspondingmechanistic effects or cellular responses, and straight-lineinterpolation is optional. These are important tools to biologist whofrequently measure complex cellular responses to external factors.

5. Alternative Implementations and Variations

An equivalent system can be build with a less graphic interface bysubstituting each of the components represented in the currentimplementation as iconic bioObjects upon of the subworkspace ofbioReservoirs and bioProcesses, and representing them instead asattributes of the bioReservoirs and bioProcesses, respectively. Thecorresponding methods would need only minor modifications, such as forexample, by substituting the current expression “the bioPool upon thesubworkspace of bioReservoir X” with “the bioPool that is an attributeof bioReservoir X”; or substituting the current expression “thebioReactant-1 connected at port-1 of the bioEngine upon the subworkspaceof bioProcess X” with “bioReactant-1 of bioReservoir X”, where each ofthe specific bioReactants connected to each of the specific stubs of aspecific type of bioengine are now converted into specific attributes ofthe specific type of bioProcess, and where those attributes are notvalues but objects, and where those objects may have as attributes otherobjects. For example, the bioPosts now connected with each bioReactantand bioProduct can also be implemented as and attribute of suchbioReactant or bioProduct, while the two sets of bioPosts connected to abioPool can now become two sets of attributes objects of thebioReservoir, such as Input-1 or Output-3. By defining a specificattribute, such as Post for these new classes of objects, the specificdistant connections can now be established by giving the same uniquevalue to the Post attributes of one of the bioReactant attributes of abioprocess and one of the Output attributes of a bioReservoir, or bygiving the same unique value to the Post attributes of one of thebioProduct attributes of a bioProcess and one of the Input attributes ofa bioReservoir. The result of this alternative implementation is thatthe different levels of encapsulation currently provided through theworkspace hierarchy would then be provided by an attribute hierarchy,and the current representation of those components by their icons wouldbe then limited to their representation by their tables of attributes,which are also part of the current implementation. Many of the tasksassociated with the menus of the icons of those components or otherauxiliary icons can be associated in the alternative implementation asmenu options of the superior bioReservoirs and bioProcesses, as many ofthose are already currently implemented. The advantage of using theapproach described in the currently preferred embodiment of thisinvention is that the more graphic interface is more intuitive for theuser, and easier to use. The disadvantage is the additional memoryrequired to store the additional graphical structures.

Another alternative is to replace the complex knowledge-structuresbioReservoir and bioProcess by the components encapsulated in theirrespective subworkspaces, after some modifications. One of the severalpossible alternatives is to bypass the bioReservoir and the bioProcessstructures altogether, and to encode the pertinent information heredefined within the bioReservoir's table of attributes in the bioPool'stable of attributes, and to encode the pertinent information heredefined within the bioProcess's table of attributes in the bioEngine'stable of attributes, and to construct the iconic components nowcontained in the subworkspaces of the bioReservoirs and bioProcessesdirectly on the desired workspace. The advantage of using the approachdescribed in the currently preferred embodiment of this invention isthat the bioReservoir and bioProcess structures encapsulate the detailsand simplifies the schematics, and makes easy the cloning and transferof the pre-constructed structures from one location to another, makingthe task of developing new models or modifying existing time much fasterand keeping complex schematics simpler. The disadvantage is theadditional memory required to store the additional graphical structures.

An alternative more compact implementation that would still allowdeveloping multidimensional pathways, bypassing the need forbioReservoirs, is to directly connect all the bioReactant-post andbioproduct-post that in the current implementation are connected to thesame bioPool, by giving them all the same name. In such implementation,the Ref-bioentity attribute, as currently defined for the classbioReservoir could instead be defined for the classes bioReactant andbioProduct, allowing in that way access to the bioEntity correspondingto an instance of bioReactant or bioProduct that would provide thephysical description of such bioReactant or bioproduct, allowingintegrating the description of structure with function. In anotherrelated implementation, the variables and parameters, inputs andoutputs, as well as other attributes, as currently implemented asattributes of the bioReservoir or its bioPool, or as separate iconswithin the bioReservoir, could be implemented as attributes of thecurrently corresponding bioEngine.

Other of the many alternatives includes storing the bioReservoir orequivalent structure within the subworkspace of the bioentity; orstoring the bioEntity within the subworkspace of the bioReservoir.However, in the current implementation, the bioentities are storedindependently of the bioReservoirs because in many cases, andparticularly dealing with very large applications, it may not benecessary to store one bioEntity for each bioReservoir, and insteadprototypic bioEntities can be used that are shared by manybioReservoirs. In such cases, another alternative is storing all thebioReservoirs that in the current implementation would refer to the samebioEntity in the subworkspace of such bioEntity.

The concepts and methods subject of this invention can be applied witheach of the object-oriented expert system shells from various vendors,after those capabilities not provided by that particular shell areadditionally encoded. An equivalent of those capabilities of theselected shell that are required to apply the concepts and methods ofthis invention may also be custom built from scratch or by combining aset of off-the-shelf components.

There are many sophisticated capabilities that can be further developedwith this system, which a knowledgeable expert can derive from theteachings of this invention. Here, only a few important ones of whichwill be described in detail:

As an alternative, the methods here represented could in part becompiled using this Shell or other shells of the compiled type,including but not limited to RTworks and Activation Framework. Thecompilation may improve performance at runtime by eliminating graphicalinterpretation of the iconic components. However, compilation does notfacilitate frequent modifications of the design and informationencapsulated in the iconic components, a feature that is of greatimportance when modeling biochemical systems, the knowledge of which isbeing continually updated and improved.

The same concepts described in this invention can be slightly modifiedby a person skilled in the art, to incorporate multiple inheritancecapabilities, allowing the bioObjects to inherit attributes from two ormore superior classes. Additional controls and code may be required inthat case to resolve conflicts that may appear when more than onesuperior class have the same attributes but receiving values fromdifferent sources, or through different methods.

Many of the symbolic variables or parameters could be also representedas logical variables or parameters, with or without fuzzy-beliefs, bysimply changing the language of the attribute name and its values. Forinstance, an attribute called status could have values: available,unknown and unavailable; or it could alternatively be calledis-available and have values true, unknown or false, the unknownassociated with fuzzy-beliefs, such as the range 0.2-0.8.

To further control the behavior of any component of a simulation,different types of filters could be applied to, for example, the Density(or Concentration) of bioPools or to the Velocity of bioEngines. Thesefilters can be of any of the types of filters used in signal processingcontrol systems, such as low-pass or ideal high-pass filters (such asH(jw)=e^(−jwto) for |w|>w_(C), else H(jw)=0), or Gaussian filters(H(w)=e^(−a(w)){circumflex over ( )}²*e^(−jwto) and others). Suchfilters could be executed in either formulas or procedures, that couldbe generic for a whole class of variables, or more specific for certaininstances or group of instances. The specific filters are more useful iffine control is required.

The Density (or Concentration) of a bioPool is the result of multipleinteractions and is represented as a differential equation in thepresent embodiment. Alternatively, it could be represented as adiscrete-time linear system or a continuous-time linear system ofequations, or whenever the Shell is able to handle vectors, as theirequivalent matrix system. Difference or differential equations can beconverted to state form, and the state variables of the system are themdescribed as a state vector, the coefficients of the variables aredescribed as a system matrix and the forcing terms are described as theforcing vector, following standard procedures.

156. A system for designing, simulating and/or analyzing in a computer models of complex biological networks, the system comprising: a) one or more submodels comprising connected networks of discrete components, wherein said components are functional units of the physical or logical compartments represented by the submodels, said components comprise attributes or variables, or any combination thereof, and said connections represent mappings between the connected components or their attributes or variables; and b) means for grouping components in order to encapsulate complexity; c) means for specifying a plurality of different types of relationships that may exist between components or their attributes or variables; and d) means for expressing the relationships between said components or their attributes or variables.
 157. The system of claim 156, wherein said components include first components, each used to store a) any type of information or data associated with at least a single process, such as a reaction, b) second components of said first components, or c) any combination thereof.
 158. The system of claim 157, wherein each of said first components comprises or references one or more variables that represent absolute or relative quantities of the participants in the process.
 159. The system of claim 157, wherein said second components are defined to play different types of roles as participants in the process, such as reactant, product, catalyst, activator, inhibitor, modifier, or any combination thereof.
 160. The system of claim 157, wherein each of said first components comprises or references a variable that represents the rate at which the process occurs.
 190. A method of creating a computer-implemented model for modeling a dynamic multi-variable biological system, wherein the biological system is controlled by a plurality of interrelated biologic processes defining functions occurring within the biological system, comprising: a) creating a first class of objects representing state variables holding a scalar real number value, wherein the set of values of all first class objects in a simulation model defines the state of the model at a certain point in time; b) creating a second class of objects representing processes in the simulation model that result in changes in the values of one or more first class objects, wherein the way of change of the values of the first class objects can be either discrete or continuous; c) establishing references between certain of said first class objects and certain of said second class of objects, to indicate which second class of objects affect changes in which first class objects in the simulation model; d) implementing equation solvers of one or more type; and e) executing said dynamic model by applying said equation solvers to change the values of said first class objects.
 191. The method of claim 190 further comprising the step of creating a third class of objects representing overall structure of the model, wherein the third class objects can contain sets of said three classes of objects, that is first class objects, second class objects and/or third class objects, wherein when the third class objects contain other third class objects, said third class objects can form a hierarchical or tree-like structure. 192-195. (canceled)
 208. A method of interactively or dynamically generating by a computer program a display, on a display device, of a complex biological system model built using a plurality of reusable discrete components, each conforming to an interface specification, wherein one or more of said discrete components is a composite component, the method comprising: a) displaying a set of reusable respective node representations for the plurality of discrete components; b) displaying a set of reusable respective link representations for the plurality of relationships between the plurality of discrete components, such as cause-effect, conversion, association, or translocation relationships; c) determining user or program selection of a number of said node representations; and d) determining user or program selection of a number of said link representations to represent the relationships between said selected node representations; and e) displaying the linked representation of the selected corresponding node and link representation instances to represent the relationships between the plurality of instances of the discrete components.
 209. A method of dynamically generating by a computer program a display, on a display device, of a complex biological system model built using a plurality of reusable discrete components, each conforming to an interface specification, wherein one or more of said discrete components is a composite component, the method comprising: a) selecting, in response to a user selection of a complex system configuration to be modeled, a set of respective node representations for the plurality of discrete components and a set of respective link representations for the plurality of relationships between said selected node representations, such as cause-effect, conversion, association, or translocation relationships, necessary to represent the model of the complex system configuration; and b) displaying the linked representation of the selected corresponding node and link representations to represent the plurality of instances of the discrete components and the plurality of relationships between the plurality of instances of the discrete components.
 240. A method for generating a model of a complex biological system in a computer system, the computer system comprising: i) one or more defined classes of typed symbols representing different elements of the complex biological system, ii) one or more defined classes of typed relations between at least two of the symbols for expressing the corresponding one or more types of relationships between at least two of the elements, including one or more relationships selected from the group of downstream, upstream, composition, linkage, association, regulation and containment relationships; iii) one or more defined rules or procedures comprising an operator for establishing one or more of said typed relations between at least two symbols; iii) one or more defined inference rules comprising an operator to reason about said symbols and their relations, the rules being expressed in a manner that enables use by an inference engine; and the method comprising the steps of: a) applying said one or more rules or procedures for establishing said typed relations between at least one symbol to at least another symbol; b) using the inference engine to infer alternative results from the system based on at least some of said symbols and their relations, given an initial hypothetical state or set of conditions.
 241. The method of claim 240 wherein said computer system further comprises: a) one or more of said classes of typed symbols further comprising quantitative variables with associated mathematical equations to compute their values in said computer system; b) simulation instructions to compute the values of said quantitative variables; c) one or more inference rules comprising an operator to reason about the values of said quantitative variables; and wherein said using the inference engine further comprises inferring said alternative results based further on the values of at least one of said quantitative variables.
 242. The method of claim 240 wherein the classes of typed symbols are organized in a hierarchy.
 243. The method of claim 240 wherein at least one of the rules is conditional.
 244. The method of claim 240 further comprising expressing the rules graphically by representing a plurality of the symbols as icons. 245-250. (canceled)
 251. A method for generating (recording) computable knowledge in a complex domain, to facilitate the computerized analysis and integration of the large amount of knowledge in such domain, comprising: a) defining a hierarchy of different classes of domain-specific typed symbols representing an ontology of the different elements and concepts of the complex domain, wherein at least some general knowledge about the pertinent elements and concepts in such domain is incorporated in the definitions of said typed symbols; b) defining one or more classes of typed relations between at least two of the classes of typed symbols for expressing the corresponding one or more types of relationships between at least two of the elements and concepts in the complex domain, including one or more relationships selected from the group of downstream, upstream, composition, linkage, association, regulation and containment relationships; c) defining one or more rules or procedures comprising an operator for establishing one or more of said defined typed relations between at least two typed symbols; d) applying said one or more rules or procedures for establishing said typed relations between at least one symbol to at least another symbol; and e) defining one or more rules or procedures comprising an operator to traverse the network formed by said symbols and their relations, thereby making the knowledge contained in said network available for further computations.
 252. The method of claim 251, further comprising expressing the knowledge graphically by representing at least some of the typed symbols as different types of icons and at least some of the typed relations as different types of lines interconnecting the icons, wherein each icon can be interconnected to any number of other icons to represent multiple relations thereby making the knowledge contained in said network available for navigation and further interactive exploration. 269-271. (canceled)
 394. The system of claim 156, wherein said components include first components, each storing: a) any type of information or data associated with at least one or more biological entities of a given type, b) second components of said first components, or c) any combination thereof
 395. The system of claim 394, wherein at least one of the biological entities is a cell or a protein.
 396. The system of claim 394, wherein each of said first components comprises or references at least one variable that represents an absolute or relative quantity of said biological entity of a given type.
 397. The system of claim 156, wherein said types of relationships comprise at least one type selected from the group of quantitative or semi-quantitative.
 398. The system of claim 156, wherein said types of relationships comprise at least one type selected from the group of conversion, association, translocation, activation, inhibition, modification, and regulation.
 399. The system of claim 156, wherein said types of relationships comprise at least one type selected from the group of downstream, upstream, composition, linkage and containment.
 400. The system of claim 156, further comprising a database from which said components or the values of their attributes or variables are selected.
 401. The system of claim 156, further comprising an inference engine capable of reasoning over said components, their relationships, or any combination thereof
 402. The system of claim 156, wherein a rule set specifies how said components may be related to other components.
 403. The system of claim 156, further comprising a simulator to dynamically simulate networks of processes, such as networks of genetic, metabolic, or signal transduction pathways, or any combination thereof.
 404. The system of claim 156, wherein at least one submodel or discrete component is reusable to compose at least other model or submodel.
 405. The system of claim 156, wherein at least one submodel is defined through modification of at least one attribute or variable of at least one component of a preexisting submodel.
 406. The system of claim 156, wherein at least one discrete component is defined as a prototype that can be instantiated and configured dynamically.
 407. The system of claim 156, wherein the discrete components are defined as a hierarchy representing an ontology of the different functional units of a biological domain.
 408. The system of claim 156, wherein at least one discrete component is defined as a lumped parameter system or black-box system.
 409. The system of claim 156, wherein a plurality of discrete components comprise at least one input element, output element, or regulator element.
 410. The system of claim 156, wherein a plurality of discrete components comprise stoichiometric coefficients.
 411. The system of claim 156, wherein a plurality of discrete components comprise symbolic parameters.
 412. The system of claim 156, wherein a plurality of discrete components comprise each at least one variable which values over time are computed dynamically.
 413. The system of claim 156, wherein a plurality of said one or more submodels form a hierarchical or tree-like structure.
 414. The system of claim 156, wherein a plurality of discrete components have associated visual representations.
 415. The system of claim 414, wherein a plurality of said visual representations further comprise at least one associated rule or function that can be called programmatically or interactively to be executed.
 416. The system of claim 414, further comprising methods to generate and display multidimensional networks, wherein the nodes are said visual representations of the discrete components.
 417. The system of claim 156, wherein said components comprise variables with associated equations to compute their values, said network of discrete components representing the topology of the complex biological network and the variables representing its behavior. 